Joel Berry II added 13 points and two key late free throws for the Tar Heels (24-6, 13-4 Atlantic Coast Conference), who led by as many as 13 points after halftime but had plenty of trouble putting the game away against Syracuse's zone.
UNC led by just a point near the 2-minute mark, but Isaiah Hicks and Johnson came up with big baskets to help the Tar Heels stay in control. Berry's two free throws with 6.6 seconds left made it a two-possession game, helping UNC hang on to first place in the ACC.
Michael Gbinije scored 17 points to lead the Orange (19-11, 9-8), who shot 41 percent and made 5 of 20 3-point tries.
The Tar Heels were coming off a weekend loss at Virginia as part of a 4-4 stretch against a backloaded February schedule. But they still entered the week tied with No. 7 Miami atop the league, and can claim at least a share of the regular-season crown and the No. 1 seed in next week's ACC Tournament by beating rival Duke on Saturday.
The Tar Heels didn't attack the Orange's zone with the same efficiency as in a January road win, shooting 41 percent while firing 25 shots from behind the arc despite being one of the ACC's worst in 3-point shooting percentage.
But Johnson came up with several big plays during a critical sequence that saw the Orange get within three points with 7 minutes left, then helped the Tar Heels turn away one more burst from Syracuse that set up a suddenly tense finish.
Gbinije hit a huge 3 to close the gap to 69-68 with 2:23 left, but he missed a drive in the final seconds with Syracuse down three to set up Berry's late free throws in what amounted to the Orange's last gasp.
UNC: Kennedy Meeks had 10 points including some big second-half baskets when Johnson and Hicks got in foul trouble. ... Marcus Paige finished with eight assists. ... UNC had a 40-34 rebounding advantage, including 19-12 on the offensive glass.
UNC travels to No. 17 Duke in Saturday's regular-season finale.