The Tar Heels never trailed after closing the first half with a 10-0 run that made it 34-27. North Carolina solidified its hold on third place in the Atlantic Coast Conference and can move into a tie for second by beating Duke in the season finale Saturday night.
James Michael McAdoo scored 10 for the Tar Heels (22-8, 12-5), who have won six in a row against Maryland, including the ACC tournament last year.
North Carolina led 36-29 before Bullock drilled a 3-pointer to launch a 13-4 run that made it 49-33 with 12:47 remaining. Hairston and Bullock combined to score all of the Tar Heels' first 15 points in the second half.
After Maryland closed to 51-42, Hairston made a layup and Bullock drilled a jumper from beyond the arc for a 12-point cushion with 9:31 to go. It was 61-46 before the Terrapins used a 9-2 spurt to get to 63-57, but a 3-pointer by Marcus Paige and a three-point play by McAdoo short-circuited the comeback.
The Tar Heels haven't lost since Feb. 13 at Duke and have won 12 of 15 in the ACC following an 0-2 start.
Maryland failed to get an important win in its bid to reach the NCAA tournament and fell to 16-3 at home.
Hairston had 10 points and six rebounds before halftime, and North Carolina led 34-27 after a first half that featured eight lead changes and two ties.
Following a ceremony honoring Maryland seniors James Padgett and Logan Aronhalt before their final home game, the sellout crowd watched the Tar Heels make five of their first six shots -- one basket by each starter -- in taking a 12-4 lead.
Faust then scored five points in a 10-1 run that put Maryland in front for the first time.
After North Carolina peeled off seven straight points, the Terrapins did the same. Two straight layups by Faust put Maryland ahead 27-24 with 3:24 left in the half, but the Tar Heels closed with a 10-point blitz run that included 3-pointers by Hairston and Paige.