Having entered Friday night's AFL match without a victory against a current top-eight team this season, the Bombers recovered from a slow start to win 13.14 (92) to 12.8 (80).
Collingwood raced out of the blocks with five goals to two in the opening quarter, including three in as many minutes from a red-hot Jack Crisp.
But the Magpies managed just three more for the next two quarters as Essendon charged ahead to grab a match-winning lead.
The Bombers led at the final change by 17 points - a deficit the Magpies have traditionally loved chasing down, often against Essendon.
Quick goals to Matt Guelfi and Jye Caldwell extended Essendon's lead to 31 points as Collingwood appeared to have nothing left for a comeback.
The Magpies were able to give Essendon a minor scare after scoring quickly through Harvey Harrison and Brody Mihocek.
But the Bombers were able to close out the match, making it the second straight game the Magpies have been unable to run over their opponents in the final quarter after losing to Gold Coast last Saturday.
Captain Zach Merrett (30 possessions, one goal) and fellow midfielder Caldwell (30 and one) led from the front, while ruckman Sam Draper responded strongly following a poor first quarter.
Collingwood superstar Nick Daicos was at his best with 31 disposals and 12 clearances, with Essendon only paying attention to the Brownlow Medal favourite around stoppages and refusing to apply a heavy tag.
The result provided some revenge for Essendon, who drew with Collingwood on Anzac Day and have suffered some heartbreaking last-gasp defeats against the Magpies during the past three seasons.
After a barren last two decades, Essendon fans can start dreaming of breaking their 20-year drought without a finals win this September.
The Bombers haven't finished inside the top four at the end of a home-and-away season since 2001, losing six elimination finals since 2009.
Collingwood forward Mihocek came off in the final quarter after hurting his shoulder.
The Magpies could drop out of the top eight by the end of the round, depending on other results, ahead of a crucial clash with Geelong next Friday night.