North Melbourne's seven-game winning streak has come to an end, at the hands of the Western Bulldogs.
Roos star Todd Goldstein dominated the ruck contests, but the Bulldogs sharked his hit-outs with relative ease, winning the clearance count 44-35 to set up a 14.12 (96) to 10.13 (73) win.
The game was played at a finals-like intensity, with both teams struggling to gain a decisive advantage.
But after leading by 11 points at three-quarter time, the Bulldogs jumped to a 23-point lead when they kicked three of the first four goals of the final term.
The Roos hit back, however, with three unanswered goals – two of them to Jarrad Waite – to get back to within six points at the 13-minute mark.
But Luke Beveridge's men steadied, kicking four of the last five goals to snap North's seven-game winning streak.
The Bulldogs' win takes them a game clear of the seventh-placed Roos, with the victors – for the moment – climbing to fifth on the ladder, although Richmond will be expected to reclaim fifth when it takes on Essendon on Saturday night.
With the Sydney Swans, who play St Kilda on Sunday and Gold Coast in round 23, favoured to hang on to fourth spot, the Dogs and Roos will likely play an elimination final.
Robbie Tarrant ruled the air in defence for North, plucking a game-high 14 marks as he cut off countless Bulldog forward 50 entries, especially in the first half.
Ex-Bulldog Shaun Higgins kicked three goals in his first game against his former side and his 150th AFL match, while Drew Petrie (three goals) and Jarrad Waite (three goals) stretched the undermanned Dogs' defence when given the opportunity, but ultimately were starved of supply as North went inside forward 50 just 44 times compared to its opponent's 52 entries.
North coach Brad Scott praised the Dogs' performance but said his team were "a bit off".
"I haven't seen our mids probably that flat for a while, but that's unusual, I don't think that's something going to affect us going forward," Scott said.
"We tried a few different things, had a look at a few different things, some worked, some didn't but (we) got some pretty good information going forward for us to improve as a team.
"It's a pretty hard performance to assess for us because our big key forwards took 23 marks between them and when that happens you think you're probably going to win, but some other areas were poor."
Lachie Hunter was outstanding for the Bulldogs, finishing with a game-high 33 possessions, including 20 in the first half, while Marcus Bontempelli (a game-high 10 clearances) and Mitch Wallis (nine) did most of the heavy lifting around the stoppages.
Jack Macrae (31 possessions) was also prolific, while Liam Picken kept North midfielder Ben Cunnington to an uncharacteristically quiet 13 possessions.
The game got off to a slow start with both teams scoring just one goal in the first term, as they chased, harassed and pressured each other into errors time and time again.
North pushed out to a 16-point lead when it kicked the first two goals of the second term, but the Bulldogs then took control at the clearances and piled on four consecutive goals to go into half-time nine points ahead.
In the latter part of the second quarter, the Roos struggled to move the ball out of their defensive 50, forced into slow, lateral ball movement as the Dogs cut off their options down the field.
NORTH MELBOURNE 1.5 3.8 5.11 10.13 (73)
WESTERN BULLDOGS 1.3 5.5 7.10 14.12 (96)
GOALS
North Melbourne: Waite 3, Higgins 3, Petrie 3, Harvey
Western Bulldogs: Dickson 2, Crameri 2, Honeychurch 2, Johannisen 2, Biggs 2, Stringer, Roughead, Picken, Bontempelli
BEST
North Melbourne: Tarrant, Higgins, Goldstein, Macmillan, Swallow, Waite
Western Bulldogs: Hunter, Macrae, Bontempelli, Dahlhaus, Wallis, Boyd, Biggs, Picken
INJURIES
North Melbourne: Nil
Western Bulldogs: Nil
SUBSTITUTES
North Melbourne: Sam Gibson replaced Lachie Hansen in the third quarter
Western Bulldogs: Zaine Cordy replaced Jarrad Grant at three-quarter time
Reports: Nil
Umpires: Dalgleish, Rosebury, Findlay
Official crowd: 37,299 at Etihad Stadium