Duke (5-2, 2-2 ACC) snapped a two-game skid, while Virginia (4-4, 2-3) lost at home for the first time this season.
Virginia controlled the clock for most of the night, holding the ball for 38:47 and running 53 times for 195 yards. Jekail Middlebrook had 117 yards and a 1-yard touchdown on 24 carries, and Beau Pribula went 15 for 24 for 158 yards. Bettridge kicked three field goals, and the Cavaliers led 13-7 at halftime. Virginia went 2 for 3 on fourth down and had 22 first downs to Duke's 16, but it turned the ball over twice, lost a fumble and settled for field goals on three trips. John Rogers caught five passes for 65 yards.
Duke's offense stalled after its opening score. Its last four drives of the first half ended in punts, with backup quarterback Dan Mahan running the offense, according to the Associated Press. Walker Eget finished 14 of 25 for 211 yards with an interception. Gavin Strange made 39-yard field goals in the third and fourth quarters, the second tying the game at 13 with 8:50 left. Duke converted 2 of 10 third downs and ran for 71 yards on 19 carries, but it averaged 8.3 yards per pass. Jonah Burton led the Blue Devils with four catches for 59 yards, and Keefe finished with three for 48. Linebacker Nick Morris Jr. had 11 tackles.
The teams met twice last season. Virginia won 34-17 in Durham, and Duke beat the Cavaliers in overtime in the ACC championship game.
Virginia plays at Wake Forest on Oct. 31. Duke is home that day.