But with the game tied at 71, everything turned. Justin Jackson hit his first 3-pointer of the game and dished a no-look dime to Isaiah Hicks on the next possession, who converted the 3-point play to give UNC a six-point lead — the largest of the game to that point.
Grayson Allen's 3-pointer from the corner cut it to one with 4:07 left, but the junior guard missed three free throws down the stretch and Duke couldn't recover. The Blue Devils went nearly four minutes without a field goal and Berry took over in the final minutes to cap off a 28-point performance.
Who stood out?
After scoring eight points and missing the potential game winner in last season's home loss to Duke, Joel Berry came out firing for the Tar Heels. The junior sank all five of his 3-point attempts in a 19-point first half, and he hit shot after shot in the final minutes to bury the Blue Devils' momentum, finishing with a game-high 28 points.
On the other side, Luke Kennard — a front-runner for ACC Player of the Year — didn't go down without a fight. The sophomore scored 13 in the first half and ended with 28 to lead Duke, and four of his teammates finished with double-digit scoring. But it wasn't enough to offset Berry's 9-for-14 outing and a 21-point performance from UNC senior forward Isaiah Hicks.
Justin Jackson, who joins Kennard as one of 10 Naismith Award semifinalists, struggled to keep pace with his ACC counterpart early on. The junior wing scored eight points in the first half, tossing up two air balls and looking disjointed for much of the contest.
But after a pivotal 3-pointer and assist late in the second half, the junior wing finished with 15 points and did just enough to keep the Tar Heels in it.
When was it decided?
With six minutes left in the game and the score knotted at 71, Justin Jackson lined up for yet another 3-point attempt.
He had come up empty on his six previous tries. But when the seventh sailed through the net, the junior wing pumped his fist and let out an audible scream.
The next possession, he strung a no-look pass to Isaiah Hicks, who converted the layup and free throw to take a six-point lead.
Duke threatened in the final minutes, but after Grayson Allen missed two free throws with 2:04 remaining, Joel Berry answered on the other end and UNC staved off the Blue Devil comeback attempt.
Why does it matter?
Beating Duke in its regular-season finale technically does little more than bolster the NCAA Tournament resume for UNC, which already clinched the ACC title before this game.
But the Tar Heels have been waiting three years for this.
North Carolina hadn't beaten the Blue Devils in the Smith Center since 2014, when UNC infamously defeated Duke by eight points after the game was delayed eight days for snow. This year's senior class combined for 34 minutes in that game.
The rest of the roster was only familiar with heartbreak — a one-point loss last season to squander a 29-point performance from Brice Johnson and a seven-point loss in 2015 after a Tyus Jones takeover in the second half.
The win also avenges an 86-78 loss for UNC in Cameron Indoor Stadium earlier this season. It mirrors the way the Tar Heels ended last season — a loss at Virginia and a win against Duke before heading into the ACC Tournament with the No. 1 seed.
Where do they play next?
The Tar Heels head to Brooklyn for the ACC Tournament. On Thursday at noon, UNC will face the winner of Syracuse and Miami. North Carolina beat the Orange by 17 points in January before a 15-point loss at Miami three games later.