The Blues led by 35 points almost 20 minutes into the third quarter before the Roos' onslaught began, kicking six goals to two in the final term. But it wasn't enough, with the Blues holding on to record a 16.13 (109) to 16.12 (108) win.
It was another heartbreaking finish for the Kangaroos, their fifth loss by less than a goal this season. But unlike those defeats where they relinquished significant leads, this time the situation was in reverse. This time, the Roos were down and doing the chasing. Carlton almost got caught.
Brad Scott's men trailed by 21 points at the final change, but had closed to 11 points within 10 minutes thanks to back-to-back goals from veteran Drew Petrie.
The game continued to swing in momentum there on, although the Blues seemed to answer North when required. But the Roos never relented.
Blues big man Matthew Kreuzer had the chance to seal the game with his side ahead by a point with less than two minutes to play when he marked in the forward pocket, but his set shot sailed out of bounds on the full, which led to another Roo rebound.
The ball moved swiftly to the Kangaroos' forward line and dribbled out the back of a contest, where veteran Brent Harvey looked set to grab it and hand his side a miraculous win. But Harvey fumbled when the ball didn't bounce quite as high as he expected, and the Roos' last chance had gone begging.
Kreuzer redeemed himself for what could have been a catastrophic miss with a strong defensive mark on the wing with less than 30 seconds to play, and Carlton stayed in control until the final siren.
With eight wins and eight losses, Carlton's victory left it equal on 32 points with finals hopefuls Port Adelaide, while the Kangaroos (6-10) are now at least two games out of the eight with only six rounds remaining.
Coach Mick Malthouse said it shouldn't have got that close had the Blues kicked accurately.
"They kicked six [goals] in the last quarter; it was seven shots each, and we kicked 2.5," Malthouse said.
"So there's lessons there that when you've got the opportunity, you've got to take that opportunity to kick a goal. That puts things to bed pretty early.
"That meant that they kept on coming, and full credit to North Melbourne.
"But I also say it's a credit to our blokes. Without any dominant midfield player, to still win was pretty good."
Post-match, Scott said the club's latest narrow defeat was different to the others, and said there had been a "step forward" on Friday night.
"It's a proud club and it's another close loss. That's the reality of it," Scott said.
"We've proven that our best is pretty good and we've taken it up to some really good sides in the past. But there's been a glaring weakness and a really huge issue in terms of halting opposition momentum.
"It looked like in the third quarter Carlton were just winning the ball, we couldn't get our hands on it, we couldn't get it forward, we were defending for 20 minutes straight.
"But today we were able to, not only halt the momentum, but shift it the other way. There's no doubt that's a step forward."
Coming back into the side after suspension, Lindsay Thomas was the Roos' best player with six goals, while Petrie finished with four.
But the Blues had too many contributors in attack.
Small forwards Jeff Garlett, Eddie Betts and Chris Yarran returned to form, combining for eight goals. Lachie Henderson also kicked three goals in another promising effort, proving he has the natural tendencies to stay in attack.
NORTH MELBOURNE 5.5 7.8 10.11 16.12 (108)
CARLTON 6.0 9.2 14.8 16.13 (109)
GOALS
North Melbourne: Thomas 6, Petrie 4, McKenzie, Bastinac, Ziebell, Wells, Harvey, Macmillan
Carlton: Garlett 4, Henderson 3, Yarran 2, Betts 2, Curnow 2, Tuohy 2, Murphy
BEST
North Melbourne: Thomas, Petrie, Thompson, Harvey, Ziebell, Adams
Carlton: Garlett, Henderson, Curnow, Simpson, Kreuzer, Murphy
INJURIES
North Melbourne: Nil
Carlton: Nil
SUBSTITUTES
North Melbourne: Sam Gibson replaced Scott McMahon during the third quarter
Carlton: Jaryd Cachia replaced Brock McLean during the fourth quarter
Reports: Nil
Umpires: Rosebury, Stevic, Mollison
Official crowd: 37,443 at Etihad Stadium