The Bombers, who came into the match after a tumultuous week off the field, trailed by 37 points in the second quarter but rallied with seven consecutive goals after the main break, eventually running out 10.12 (72) to 9.14 (68) winners.
After scores were locked at 66 with five minutes remaining, Paddy Ryder kicked the match-winner, the Bombers ruckman threading a left-foot snap with 90 seconds remaining to leave the majority of the 35,963 in attendance at Patersons Stadium stunned.
Both Paul Duffield and Chris Mayne had last-minute chances to steal back the lead for Fremantle, but Mayne’s shot hit the post with just seconds remaining.
The siren heralded scenes of wild celebration from the Bombers, whose coach James Hird has come under heavy pressure to resign over the drugs controversy.
The Bombers, who kicked 28 goals against Melbourne last week, managed just one goal in the first half on Friday night as skipper Jobe Watson was held to just seven disposals.
But it was a different Watson and a different Essendon that took control in the second half, squeezing the life out of the home side.
It took Essendon until the nine-minute mark of the second quarter to register their first goal.
After losing All Australian defender Luke McPharlin to concussion in an incident with Ryder that is likely to come under the scrutiny of the match review panel, Fremantle took until the 11-minute mark of the first term to record the first goal of the match.
The home side then proceeded to kick another four before quarter-time and added a further two goals in the second quarter.
Hayden Ballantyne, Mayne, Nathan Fyfe and Michael Walters combined to good effect to help Fremantle kick away, though Matthew Pavlich was well beaten by Jake Carlisle.
The home side had planned well for Essendon’s midfield, forcing Watson to handball rather than kick thanks to the pressure of both Ryan Crowley and Matt De Boer.
But Brent Stanton did break free at times, while Michael Hibberd snuck under Fremantle’s guard.
Everything changed in the third quarter, and it was only through some errant Bombers’ kicking that Fremantle was able to retain its lead at the final change.
ESSENDON 0.3 1.5 6.10 10.12 (72)
FREMANTLE 5.3 7.5 7.7 9.14 (68)
Essendon: Crameri 3, Hurley 2, Kavanagh, Howlett, Kommer, Heppell, Ryder
Fremantle: Mayne 3, Fyfe 2, Walters 2, Ballantyne, Duffield
Essendon: Hibberd, Carlisle, Hooker, Crameri, Ryder, Hurley
Fremantle: Duffield, Fyfe, Mundy, Barlow, Ballantyne, Walters
Fremantle: McPharlin (concussed), Bradley (cut head)
Essendon: Dustin Fletcher replaced by Travis Colyer in the third quarter
Fremantle: Luke McPharlin (concussion) replaced by Cameron Sutcliffe in the first quarter
Umpires: Margetts, Farmer, Mollison
Official crowd: 35,963 at Patersons Stadium