Red-hot Jason Roberts made it four goals in two games with another terrific double as Wigan Athletic confirmed their return to Premiership health as they took another giant step towards guaranteed survival with their tenth win of the campaign.
Man-of-the-match Roberts was unstoppable as he took his season's goal total to six after City had made a dream start grabbing an early lead in front of a new record crowd at the JJB Stadium.
And they were treated to an action packed thriller with chances galore at both ends and a nail-biting finish.
City had their first-choice strikeforce available with seven-goal Andy Cole back after suspension but he had to be content with a place on the bench.
Darius Vassell teamed up again with Antoine Sibierski who got his first goal of the season in the 4-1 win over Birmingham as City put the shock defeat by West Brom behind them. Bradley Wright-Phillips, who also got off the mark against Birmingham, was also among the subs.
The City players went into the game refreshed from a rare Christmas Day off, manager Stuart Pearce deciding to cancel training as a goodwill gesture before the start of the hectic holiday fixture list.
Wigan boss Paul Jewell, back to health after being laid low by a virus, had a full-strength squad available. Pearce's surprise decision to stick with Sibierski paid instant dividends as City snatched the lead after just three minutes.
David Sommeil thumped in the cross from the right and Pascal Chimbonda was late arriving to snuff out the danger, allowing the French striker a free and easy header from the edge of the six-yard box.
Wigan were quick to respond with Henri Camara gifted a clear sight of the target but he hammered way over the bar. But his strike partner Roberts made no mistake as Wigan grabbed a12th minute equaliser.
Gary Teale set it up with a terrific ball, and Roberts used his strength to out-muscle City skipper Sylvain Distin, and the finish was perfection.
He fired beyond the reach of David James and got the luck he deserved as the shot clipped the post and went in to give Roberts his fifth of the season.
City survived a penalty appeal when Distin appeared to push Roberts but Wigan did strike again when Lee McCulloch headed in number two from Teale's cross.
City were desperately unlucky when Joey Barton lobbed the keeper only to see the ball come back off the post.
Wigan were fortunate not to be punished for a slip by Leighton Baines - Sommeil failing to cash in on the mistake.
But the Latics missed a great chance when a long throw from Mike Pollitt set Camara free with Teale unmarked as he raced in.
Camara picked him out with the cross, but the flying Scotsman could not find the finish, and James was alert enough to rescue the situation.
But seconds before half-time it was 3-1 with Roberts again doing the damage. The ball skimmed off Ben Thatcher's head and Roberts had the power to get past Distin and bury the shot in the far corner.
City's luck was out again when Pollitt beat out a shot from Barton and the follow-up header from the City midfielder was cleared off the line by Chimbonda.
The Wigan keeper then covered himself in more glory with an incredible double save, keeping out the shot from Barton and recovering to stop the follow-up from Vassell.
Pearce finally sent on Andy Cole but he got the same treatment from Pollitt, who also denied Trevor Sinclair.
With City desperate to find a way back, they were caught on the break when Camara slipped inside Richard Dunne to hammer in number four - and his seventh of the season.
City's persistence paid off when Barton volleyed in their second with 13 minutes left and Cole got the third with three minutes to go.
Sibierski headed just wide as City battled for an equaliser and Wigan had to endure another three minutes of added time before the points were finally in the bag.