North Carolina made the 30-minute drive to visit ranked rival North Carolina State and left Raleigh just as the 12th-ranked Tar Heels always seem to do: with a win.
Luke Maye scored 21 points to help the Tar Heels hold off the 15th-ranked Wolfpack 90-82 on Tuesday night, earning a sixth straight road win in the longtime series.
The Tar Heels (12-3, 2-0 Atlantic Coast Conference) scored the game's first 12 points and never trailed, but they had to turn away pushes from the Wolfpack right up to the final seconds.
"It shows we're tough," Maye said.
They had to be, too. They had too many turnovers that kept threatening to spark the Wolfpack (13-2, 1-1) into a sustained game-turning run. They also had to play without season-leading scorer Cameron Johnson for the final 12-plus minutes, yet managed to stay a step ahead of an N.C. State team that has been surging for more than a month.
"We've been there," said senior Kenny Williams, who had his first career double-double with 15 points and 10 rebounds. "Teams have went on runs against us. So we're not strangers to it. It's not uncharted territory. We're all composed, we've got three seniors who have been through the ringer."
The Tar Heels went 6 for 6 at the line in the final 32.1 seconds to seal the win.
Braxton Beverly scored 21 points to lead N.C. State (13-2, 1-1), which had won seven straight games. The Wolfpack twice managed to tie the game in the second half, yet kept coming up a shot or stop short.
"I told our team at the end of the game in the locker room: when you score 82 points, that's enough to win the game," N.C. State coach Kevin Keatts said. "We've got to do a better job of cleaning up some of the mistakes that we made."
UNC: The Tar Heels had built momentum since losing to Kentucky on Dec. 22, beating Davidson and Harvard before winning their league opener at Pittsburgh — all by 20 or more points. It wasn't always pretty Tuesday night — most notably with the 23 turnovers — but good enough.
N.C. State: More than a month had passed since the Wolfpack's lone loss at Wisconsin, with N.C. State beating then-No. 7 Auburn and entering the AP poll for the first time since January 2013 while earning its best start since the 1973-74 NCAA championship season. But that bad start put N.C. State in catch-up mode early, and the Wolfpack never retake the lead and ride the momentum of a rowdy home crowd.
"Just small things: little mental errors, mental lapses, little details," said Wolfpack senior Torin Dorn, who had 12 points and 10 rebounds. "In any game in the ACC, any rivalry game like that, you've got to outscrap teams and you have to be able to make those plays."
Johnson left at the 12:10 mark after halftime after going down during a scrap for the ball. He eventually hobbled to the locker room and spent much of the second half watching an online game stream while dealing with cramps rolling through his calves, hips and hamstrings.
"I'll be completely fine," Johnson said. "It's just I couldn't get them to calm down."
Johnson had 15 points and 11 rebounds before exiting. He also twice had huge baskets immediately after N.C. State tied the game, first a 4-point play and later a 3-pointer that kept UNC in control.
N.C. State trailed 70-69 with about 10 minutes left, but followed with four straight turnovers in what became a scoring drought of more than 4 1/2 minutes. UNC responded with nine straight points, including a 3 from Williams, to push the lead to 10 with 5:44 left. N.C. State got no closer than four points again.
Roy Williams is now 29-4 against N.C. State in 16 seasons as UNC coach, including 14-2 in Raleigh. ... This was the first meeting with both teams ranked in the AP poll since February 2006. ... DJ Funderburk had 15 points, helping N.C. State finish with 43 bench points. ... UNC finished with a 51-33 rebounding advantage.
UNC: The Tar Heels host Louisville on Saturday.
N.C. State: Pittsburgh visits the Wolfpack on Saturday.
More AP college basketball: https://apnews.com/Collegebasketball and https://twitter.com/AP_Top25
Follow Aaron Beard on Twitter at https://twitter.com/aaronbeardap