Freshman Justin Jackson scored a season-high 22 points to lead the Tar Heels, who never trailed and led by as many as 13 points before all-ACC guard Malcolm Brogdon singlehandedly brought the Cavaliers (29-3) back.
The Tar Heels shot 55 percent against Virginia's tough defense, controlled the boards and played solid defense of their own for much of the night to earn their fourth trip to the finals in five years.
Brogdon scored 22 of his 25 points after halftime, including a run of eight straight shots that pulled Virginia to within one on his drive with 1:16 left.
But Paige answered with an up-and-under move against Brogdon in the lane to beat the shot clock with 41.6 seconds left and push the margin to 65-62.
Justin Anderson - in his second game back after missing eight games due to a finger injury and an appendectomy - and Brogdon both missed tying 3s, and UNC went 6 for 6 at the line in the final seconds to hang on as Virginia kept fighting to the horn.
North Carolina controlled the first half and the first 12 minutes of the second, leading 51-38 on Jackson's score in the lane before Brogdon got going.
Virginia won the regular-season and tournament titles last year, then won the regular-season race again to earn the top seed. But the Cavaliers have now lost two of three heading into the NCAA tournament and they're still trying to get Anderson back to his pre-injury form.
It was UNC's second win in two days against a ranked team. The Tar Heels beat No. 14 Louisville 70-60 in Thursday's quarterfinals.
UNC: Paige finished with 14 points. ... UNC went 7 for 14 from 3-point range, with Jackson hitting 4 for 5. ... UNC survived 18 turnovers that led to 24 points for Virginia. ... Freshman Theo Pinson missed his third straight game due to soreness in his left foot. He had recently returned from a monthlong absence after breaking that foot in late January.
Virginia: Anderson didn't score and missed all four of his shots, including an airball on a late 3. ... Anthony Gill and London Perrantes each scored 12. ... Virginia shot 38 percent in the first half but improved to 50 percent after halftime to cut into UNC's lead.
UNC: will play the Notre Dame-Duke winner on Saturday night.