P.J. Hairston scored 13 points despite a heavily wrapped and injured left (non-shooting) hand for the third-seeded Tar Heels (24-9), but his missed free throw with 16 seconds left gave Maryland a chance to force overtime.
The Terps called time out with 10.9 seconds left, and Logan Aronhalt took the inbounds pass and immediately launched an off-balance 30-foot airball.
Bullock snatched the ball and passed to Hairston, who was all alone near midcourt, and the Tar Heels ran out the clock to clinch their league-record 32nd appearance in the title game.
Next up: a meeting with No. 9 Miami, the tournament's top seed, on Sunday with North Carolina's 18th league tournament title on the line. The Hurricanes' regular-season sweep included a humiliating 26-point win last month at Miami.
Alex Len had 20 points to lead seventh-seeded Maryland (22-12), which knocked off No. 2 Duke less than 24 hours earlier in the quarterfinals and nearly pulled off another upset.
The Terrapins trailed by 10 with just over 7 minutes left before rallying to make things tight down the stretch.
But every time they got too close, North Carolina had an answer.
Twice in the final 3 minutes, freshman guard Marcus Paige followed a Maryland basket by hitting a clutch shot of his own.
His jumper with 2:49 left came after Len cut the Tar Heels' lead to 71-70. And after Dez Wells hit a layup to pull the Terps to 75-72 with 1:08 left, Paige drove the baseline for a pretty layup that put North Carolina back up by five with 36.5 seconds left.
He and Wells traded free throws in a 3-second span, and Aronhalt's stickback with 17.3 seconds left pulled Maryland to 78-76. Hairston then hit 1 of 2 free throws 1.3 seconds later.
Big man James Michael McAdoo also finished with 13 points for the Tar Heels, who improved to 8-2 since inserting Hairston in the starting lineup and playing with four guards.
Their only losses in that span came to a Duke team that had already been knocked out of the tournament by these Terrapins.
Nick Faust added 17 points with five 3-pointers for Maryland while Wells -- the Xavier transfer who emerged as a leading tournament MVP candidate while averaging 25.5 points in wins over Wake Forest and Duke -- finished with 15 on 6-of-15 shooting.
He showed some frustration when his reverse layup with about 17 minutes left rimmed out, extending and waving both arms in disbelief.
A few seconds later, Bullock buried a short jumper and the Tar Heels matched their largest lead to that point, 47-35. Their largest lead came with 11:28 left when Leslie McDonald's free throw made it 58-45.
Hairston finished 3 of 10 and was 2 of 8 behind the 3-point line in 36 minutes -- but that he even played at all was remarkable.
He needed eight stitches to close a wound that split the night before against Florida State when the ball jammed between his fingers.
He was a game-time decision but warmed up -- and started -- with the two fingers bound together with a splint and tape covering most of his hand, and he showed no obvious signs of discomfort.