The Dockers extended their unbeaten run to eight matches, winning 10.7 (67) to 4.5 (29), in front of 31,637 fans who braved the weather.
The wet conditions played into the Dockers' hands. Neither side managed a goal until Michael Barlow soccered a goal from the goalsquare in the dying seconds of the opening term to give Fremantle a seven-point lead at the first change.
It was the class of Nathan Fyfe that separated the two sides in the second. After Aaron Mullet produced a fabulous running goal to start the term, Fyfe's brilliance shone brightly on a dull day.
He took a clutch contested mark and converted from a tight angle. His skills and poise in the wet stood out and Fremantle's pressure suffocated the Kangaroos who managed just 1.3 for the first half, trailing by 27 points at the long break.
Fremantle's pressure dropped off in the third term and opened the door for North Melbourne.
Brent Harvey took a courageous mark going back with the flight and converted the set shot to cut the margin to 21.
Harvey gave that goal back immediately with an ill-disciplined act.
Frustrated with the close attention of tagger Ryan Crowley, Harvey struck Crowley in the throat leading to a 50m penalty and a goal to Michael Johnson.
The Kangaroos stuck to their task admirably but couldn't make significant inroads into the Dockers' lead.
The Dockers' 25-point margin at three-quarter time was cut to 19 when Aaron Black kicked a goal early in the final term to give North Melbourne hope.
But the glimmer was snuffed out with a steadying set shot from Hayden Crozier who had been subbed in for Jack Hannath at the last change.
Michael Walters added to a burgeoning highlight reel with a sublime snap from hard against the boundary line to seal the Dockers' ninth win of the year.
Lindsay Thomas was subbed out during the third term with a left-hamstring injury. The leader in the Coleman Medal race coming into round 13 was held goalless for just the second time this season before he was substituted.
Freo's Stephen Hill ran to the bench in the final term after hurting his shoulder in an innocuous-looking clash.
Hear from JL following the round 15 win over Geelong
01:54
Luke Jackson Highlights | Round 15 v Geelong
Watch all the best moments from Luke Jackson's starring display as the big man dominates with 28 disposals and three goals
01:14
Alex Pearce Highlights | Round 15 v Geelong
The standout moments from Alex Pearce's milestone game as the captain celebrates his milestone game with a superb defensive masterclass
20:49
POST GAME SHOW | Final Siren with Nathan O'Driscoll
Duck and Oz are joined by Noddy from the Freo change rooms on some sort of in house sort of radio production or something going on, following our Thursday night win over Geelong.