The Cavaliers (7-3, 4-2 Atlantic Coast Conference) moved one victory closer to a possible showdown with No. 10 Virginia Tech with the ACC's Coastal Division title on the line. It was Virginia's third consecutive victory, two in November, where it had lost 13 straight before last week.
Virginia ended its three-year losing skid against Duke (3-7, 1-5), who has lost five straight games.
The Cavaliers play at Florida State next weekend. If they win, or if Virginia Tech loses to North Carolina on Thursday night, the game would decide the Coastal representative in the ACC championship game in Charlotte, N.C.
The Cavaliers had their hands full with Duke until taking command in the third quarter.
Khalek Shepherd's 43-yard kickoff return set them up at the 44, and Rocco hit Max Milien for 21 yards on the first play. A 22-yard pass to Paul Freedman moved the ball to the Blue Devils' 1, and Jones scored on the next play.
After Duke punted, the Cavaliers started their next drive with gains of 9, 15, 18 and 16 yards, but they stalled at the Blue Devils' 12 and Robert Randolph kicked a 29-yard field goal.
Duke Will Smyderwine missed two field goals, including a 34-yarder in the fourth quarter.
Duke pulled even at 21 when Conner Vernon beat Chase Minnifield for a 51-yard catch to the Virginia 3. The Blue Devils sent Anthony Boone in at quarterback to try to run it in, and he gained 2 yards and then fumbled. The play was initially ruled a touchdown, with Duke recovering in the end zone, but was overturned and placed at the 1. After two sneaks by Renfree yielded nothing, Juwan Thompson ran it in easily on fourth down. It was Thompson's second touchdown.
Minnifield had given Virginia the lead, intercepting Renfree on the opening series of the third quarter and returning it 54 yards for a touchdown. It's was his 13th career pick.
Virginia pulled even at 14-14 just before halftime when Rocco hit Burd along the left sideline and Burd tight-roped down the chalk line for a 38-yard touchdown, his first this season.
The Blue Devils scored on consecutive possessions to go ahead 14-7. The first came three plays after Virginia took a 7-0 lead. Renfree hit Donovan Varner over the middle, and Varner split the Cavaliers defense and outran them all on a 64-yard scoring pass. On the play, Varner tied Clarkston Hines' school record of 189 receptions. He later moved into the lead alone.
After the Cavaliers went three-and-out, Renfree hit Braxton Deaver for 41 yards and the Blue Devils drove to the Cavaliers' 4 before losing a yard and then two incompletions by Renfree.
The second came on fourth-and-4 from the 5, and Virginia safety Corey Mosley appeared to have cleanly knocked the ball away from Varner. The officials didn't agree, calling Mosley for pass interference, and Juwan Thompson ran it in from the 1 two plays later to make it 14-7.
Duke drove to Virginia's 7 in the first quarter, but Matt Conrath blocked Will Snyderwine's 25-yard field goal attempt. It was the third block of the season for the 6-foot-7 Conrath.