Having begun the contest in ferocious fashion, the Magpies were 28 points up late in the second quarter, only to see their lead evaporate when the Cats booted eight goals to two in the third term.
Nathan Buckley's men then slipped 13 points behind five minutes into the final quarter, but two late goals to Andrew Krakouer and another to Jamie Elliott powered them to a 15.12 (102) to 14.12 (96) victory.
"We had 22 contributors tonight," Buckley said after the game. "We really didn't have a passenger.
"Everyone was prepared to tip in, and that's a great first step for us off the back of last week. And now we need to make it consistent."
It was Collingwood's fifth win of the season and its third consecutive victory over Geelong since the 2011 Grand Final.
The Cats were left to rue to absence of triple premiership players James Kelly (suspension), Steve Johnson (a late withdrawal with a calf problem) and Paul Chapman (hamstring), although coach Chris Scott said he was keen to avoid using that as an excuse for why his team's seven-game winning streak was ended.
"The result could have gone either way, but the unfortunate reality at the moment is that we're not playing well enough, consistently enough," Scott said.
"Our first half was as poor as I've seen us play this year, which probably leads you to believe you should lose the game.
"The positive is that the quarter was fantastic and we played more like we talked about during the week.
"So we've got to keep improving our game, and if we had somehow found a way to get over the line I'd be saying exactly the same thing."
Five talking points: Collingwood v Geelong
Scott Pendlebury (31 possessions, six clearances), Harry O'Brien (31 touches, six clearances) and Dane Swan (29 possessions, five clearances) were among the heroes for the Magpies, who themselves were forced to do without star players Dale Thomas (ankle), Heath Shaw (suspension) and Dayne Beams (quad).
Krakouer, Elliott and Sam Dwyer did the damage on the scoreboard with three goals each.
Dwyer was also a star in the middle of the ground, amassing 27 disposals.
Click here to vote for the three best Collingwood players from the game.
Brent Macaffer was another Magpie who played a key role. He limited Geelong skipper Joel Selwood to just seven possessions in the first half (Selwood didn't touch the ball in the second quarter) and 20 for the game.
But the Magpies' triumph was soured by the report of ruckman Darren Jolly for a high bump on Geelong's Mathew Stokes late in the first half.
The Cats' first loss for the year has cost them top spot on the ladder, with Hawthorn now sitting pretty atop the table.
Midfielders Matthew Stokes and Joel Corey, half-back Andrew Mackie and swingman Jimmy Bartel were the best players on the losing side.
Bartel started the game in horrible fashion, gifting Collingwood its opening goal when a routine handball failed to find teammate Allen Christensen.
But after making four clangers in the opening 10 minutes, the Brownlow medallist gritted his teeth and made a positive impact.
Having spent time in defence, attack and the midfield at various stages, Bartel finished with 23 possessions at 78 per cent efficiency and booted two goals.
Tom Hawkins, who was picked up by Ben Reid for the entire game, was Geelong's leading goal scorer with four.
The big forward moved freely and appeared to have shrugged off the back stiffness the curtailed his output against Essendon a week earlier.
James Podsiadly, Christensen and speedster Steven Motlop chipped in with two majors.
Click here to vote for the three best Geelong players from the game.
Geelong will be confident that it can return to the winners' list when it plays Port Adelaide at AAMI Stadium next Saturday afternoon.
However, the Cats are likely to be without forward Billie Smedts, who had to be subbed out of the loss to the Magpies during the second quarter after suffering an ankle injury.
Collingwood faces another huge test next Friday night when it hosts the Sydney Swans at the MCG.
Jordan Schroder provided one of many highlights in the game. Picture: AFL Media
COLLINGWOOD 5.7 9.9 11.10 15.12 (102)
GEELONG 3.1 5.7 13.11 14.12 (96)
GOALS
Collingwood: Dwyer 3, Elliott 3, Krakouer 3, Pendlebury 2, Sidebottom, Lynch, Cloke, Seedsman
Geelong: Hawkins 4, Bartel 2, Christensen 2, Motlop 2, Podsiadly 2, West, Mackie
BEST
Collingwood: Pendlebury, O'Brien, Cloke, Sidebottom, Elliott, Dwyer
Geelong: Stokes, Hawkins, Mackie, Motlop, Bartel,Corey, Enright,
INJURIES
Collingwood: Nil
Geelong: Smedts (ankle), Johnson (calf) replaced in selection side by Caddy,
SUBSTITUTES
Collingwood: Ben Kennedy replaced Jarrod Witts at three quarter time
Geelong: Josh Hunt replaced Billie Smedts in the second quarter
Reports: Darren Jolly (rough conduct) on Mathew Stokes
Umpires: Chamberlain, McInerney, Mollison
Official crowd: 66,768 at the MCG