Jones finished with 10 catches for 101 yards to set a school single-season record for receptions, while Bernard had a season-high 30 carries and finished with 222 total yards to lead the Tar Heels (7-5, 3-5 Atlantic Coast Conference). Bryn Renner also threw for 274 yards and tied a school single-season record for TD passes, helping UNC beat the Blue Devils (3-9, 1-7) for the eighth straight year.
North Carolina also capitalized on four turnovers, getting a pair of field goals and Jones' 8-yard scoring catch midway through the fourth quarter following those miscues.
Sean Renfree threw a pair of touchdown passes for Duke, though coach David Cutcliffe went with mobile backup Anthony Boone most of the way after Renfree took a hard hit on a 45-yard touchdown throw to Jamison Crowder just before halftime.
Boone led a third-quarter touchdown drive that ended with his 11-yard pass to Donovan Varner and cut North Carolina's lead to 23-21 late in the third. But the Tar Heels answered when Renner found Jones for an 18-yard TD grab -- Jones hauled it in with his left hand -- that again made it a two-possession game. Then, after Boone threw an interception to end a drive that had crossed midfield, Renner directed a 91-yard drive that took 6 1/2 minutes off the clock before he found Jones for the 8-yard score that made it 37-21 with 8:17 left.
With the win, North Carolina can look forward to a likely bowl game and a chance to match its 8-5 record of each of the previous three seasons, though 16 of those wins were later vacated due to NCAA penalties. That NCAA investigation into improper benefits and academic misconduct led to the firing of coach Butch Davis just before training camp and the promotion of defensive coordinator Everett Withers to interim coach.
Withers wouldn't talk in recent days about whether this would be his final game in Kenan Stadium, saying only that he believed he was a candidate to be the permanent head coach. Regardless of his future, he at least extended the Tar Heels' recent dominance against the Blue Devils and kept the Victory Bell in Chapel Hill.
North Carolina had won 20 of 21 meetings and managed a 100-yard rusher in six of the last seven meetings, an indication of its physical edge in the rivalry. This one fit right in, with Bernard cracking the 100-yard mark in the first half and bursting up the middle for a 48-yard sprint to the end zone early in the second quarter.
Renfree found Juwan Thompson for a 70-yard touchdown pass on a perfectly called route out of the backfield in the first quarter, then hit Crowder for a 45-yard score late in the first half despite taking a late hit from Zach Brown that cut UNC's lead to 20-14 at halftime. But Duke went three-and-out on the first drive of the second half and Renfree fumbled on a blindside sack to end the second drive.
Cutcliffe said said Renfree had numbness and swelling in his right hand in the second half, prompting the switch to Boone midway through the third quarter.
Duke closed the year with seven straight losses after a 3-2 start. Three of the previous six losses had been by a touchdown or less.
Justin Holman pass intercepted Devin Abraham return for 12 yds to the UCF 49
Quinton Flowers pass complete to Sean Price for 1 yd for a TD
Quinton Flowers pass complete to Chris Barr for 4 yds for a TD
Quinton Flowers pass complete to D'Ernest Johnson for 28 yds to the UCF 4 for a 1ST down
Quinton Flowers pass incomplete to Ryeshene Bronson
Matthew Wright 28 yd FG GOOD