Ji Dong-won's injury-time winner earned Sunderland a superb victory over Premier League leaders Manchester City.
City were aiming to capitalise on Manchester United's loss to Blackburn, but came up against a determined display by Martin O'Neill's side.
Nicklas Bendtner and Stephane Sessegnon were denied a goal either side of the break, with Edin Dzeko and Micah Richards both hitting the woodwork.
But with the last kick of the game, Ji rounded Joe Hart to win it.
It was a breathless end to a pulsating second half when, at the end of an isolated counter-attack, the Korean substitute latched on to Sessegnon's through ball, despite a suggestion of offside, before coolly finishing.
O'Neill thrilled with 'remarkable' win
And it was a rich reward for a performance which would leave defensive coaches drooling, such was Sunderland's energy all over the pitch and their steel at the back.
The result earns O'Neill his third win in five league matches since taking over at the Stadium of Light and lifts his team to 13th in the table, six points above the relegation zone.
It also means City stay top ahead of Manchester United on goal difference but they have now failed to score in their last two games and have not won away in their last four league outings.
Despite laying siege to the Sunderland goal late on, manager Roberto Mancini will recognise the missed opportunity and will perhaps rue his decision to rest Sergio Aguero and David Silva before introducing them after the break.
And there will be no-one more grateful than Manchester United boss Sir Alex Ferguson, who is a good friend of O'Neill's.
CITY'S FESTIVE BLUES
Manchester City have failed to score for the second league game on the trot
The defeat by Sunderland means they have not won away in the league since beating QPR on 5 November
With both teams in action on Boxing Day, and facing further matches in just over 48 hours' time, the pace of the game began slowly compared to the second period.
But Sunderland almost took the lead in the opening three minutes when, from a Manchester City corner, Sessegnon sent Bendtner clear, only for a poor second touch to allow Hart to force him wide and the keeper eventually smothered the shot.
Northern Irishman James McClean was making his full debut for the hosts and tested Hart again soon after, yet once City withstood that spell they began to dominate possession.
Adam Johnson provided a test for Sunderland's stand-in full-backs Jack Colback and Craig Gardner on either wing as he switched positions and fired over from a short corner.
But the Sunderland pair, along with others, including skipper Lee Cattermole, typified a display which was full of courage and concentration.
Mancini started Edin Dzeko as a lone striker and the Bosnian was isolated at times, although he came closest when he clipped the bar following a corner.
Mancini bemused by 'incredible' defeat
At the other end Gardner fired over with an angled effort after clearing Samir Nasri's goalbound shot, and City's lack of goal threat prompted Mancini to introduce Aguero at the break and Silva soon afterwards.
With the game becoming more open, Simon Mignolet saved from the Argentine forward, although it appeared Sessegnon was fouled in the build-up to the close-range strike.
And as Sunderland continued their quick pressing, they were inches from scoring after the hour mark when Sessegnon picked up Bendtner's flick-on and skipped past Vincent Kompany, but his shot with the outside of the boot fizzed just wide.
That opening led to a sustained period of pressure on the Sunderland goal yet the Black Cats remained firm despite Silva testing Mignolet twice and Richards heading the ball into the ground and on to the bar late on.
Dzeko was also off target on several occasions, and his and City's profligacy was punished when Sunderland, urged on by the vocal home support, broke forward and Ji proved the calmest person in the stadium as he secured the victory with a superb finish.
Full Time The game is over, as the referee blows his whistle.
The assist for the goal came from Stephane Sessegnon.
90:00 +2:58 Goal scored
Goal - Dong-Won Ji - Sunderland 1 - 0 Man City Goal scored by Dong-Won Ji from close in low into the middle of the goal. Sunderland 1-0 Man City.
Sergio Aguero takes a shot. Blocked by Matthew Kilgallon.
Micah Richards sends in a cross, clearance made by John O'Shea.
Stephane Sessegnon challenges Joleon Lescott unfairly and gives away a free kick. Pablo Zabaleta restarts play with the free kick.
David Silva has a drilled shot. Save made by Simon Mignolet. Micah Richards takes a shot. David Silva takes a shot. Save by Simon Mignolet.
Gareth Barry has an effort at goal. Jack Colback gets a block in.
Shot from 20 yards from Vincent Kompany. Blocked by Craig Gardner.
Substitution Ahmed Elmohamady on for David Vaughan.
Adam Johnson delivers the ball, Header from close in by Edin Dzeko misses to the left of the goal.
Edin Dzeko produces a right-footed shot from inside the area that clears the crossbar.
Centre by Pablo Zabaleta, Effort on goal by Edin Dzeko from deep inside the penalty area misses to the right of the target.
Substitution (Sunderland) makes a substitution, with Dong-Won Ji coming on for Nicklas Bendtner.
Sebastian Larsson crosses the ball, clearance by Joleon Lescott.
Foul by Micah Richards on Jack Colback, free kick awarded. Free kick taken by Simon Mignolet.
David Vaughan crosses the ball.
Pablo Zabaleta produces a cross.
David Silva takes a short corner.
The ball is sent over by Adam Johnson, Pablo Zabaleta has an effort at goal. Blocked by Jack Colback. David Silva takes a outswinging corner from the left by-line to the near post, Sebastian Larsson manages to make a clearance.
Matthew Kilgallon challenges Edin Dzeko unfairly and gives away a free kick. Free kick crossed by Gnegneri Toure Yaya.
Sergio Aguero produces a right-footed shot from just outside the box that goes wide right of the goal.
David Silva sends in a cross, Header by Edin Dzeko from deep inside the penalty area misses to the right of the target.
Substitution Micah Richards is brought on as a substitute for Aleksandar Kolarov.
Booking Sebastian Larsson booked.
Sebastian Larsson concedes a free kick for a foul on Sergio Aguero.
Edin Dzeko takes a shot. Save by Simon Mignolet.
The ball is sent over by Aleksandar Kolarov, clearance made by Jack Colback.
Effort from deep inside the area by Stephane Sessegnon misses to the left of the target.
Centre by Gareth Barry, clearance by James McClean.
Vincent Kompany gives away a free kick for an unfair challenge on Nicklas Bendtner. Sebastian Larsson has an effort direct from the free kick, Gareth Barry gets a block in.
Aleksandar Kolarov concedes a free kick for a foul on Sebastian Larsson. Simon Mignolet takes the free kick.
Sergio Aguero takes a shot. Simon Mignolet makes a fantastic save. Inswinging corner taken from the right by-line by Adam Johnson, clearance by Craig Gardner.
Effort on goal by Edin Dzeko from just inside the area clears the bar.
Short corner worked by Adam Johnson.
Substitution Samir Nasri leaves the field to be replaced by David Silva.
Pablo Zabaleta produces a right-footed shot from just outside the box that misses to the right of the net.
Sebastian Larsson gives away a free kick for an unfair challenge on Sergio Aguero. Joleon Lescott takes the free kick.
The ball is swung over by Aleksandar Kolarov, John O'Shea gets a block in. Inswinging corner taken right-footed by Samir Nasri, clearance made by Nicklas Bendtner.
Inswinging corner taken from the left by-line by Sebastian Larsson, save by Joe Hart.
Gnegneri Toure Yaya produces a right-footed shot from just outside the box that misses to the right of the goal.
The ball is crossed by Aleksandar Kolarov, Simon Mignolet manages to make a clearance.
Centre by James McClean.
The game restarts for the second half.
Substitution Sergio Aguero joins the action as a substitute, replacing Nigel De Jong.
45:00 +1:09 Half time
Half Time The whistle is blown to end the first half.
Craig Gardner produces a right-footed shot from just outside the area that goes harmlessly over the bar.
Centre by James McClean, clearance by Vincent Kompany.
The ball is swung over by Samir Nasri, clearance by Matthew Kilgallon.
Free kick awarded for an unfair challenge on Nigel De Jong by Nicklas Bendtner. Nigel De Jong takes the free kick.
Edin Dzeko has a drilled shot. Save by Simon Mignolet.
Free kick awarded for an unfair challenge on Nicklas Bendtner by Pablo Zabaleta. The free kick is swung in right-footed by Sebastian Larsson, save made by Joe Hart.
The ball is sent over by Samir Nasri, clearance made by Craig Gardner. Joleon Lescott takes a shot. Blocked by Matthew Kilgallon.
Adam Johnson fouled by Craig Gardner, the ref awards a free kick. Samir Nasri restarts play with the free kick.
A cross is delivered by Adam Johnson, save by Simon Mignolet.
Samir Nasri sends in a cross, save made by Simon Mignolet.
Edin Dzeko takes a shot from 18 yards.
Inswinging corner taken from the left by-line by Samir Nasri, save by Simon Mignolet.
Shot by Edin Dzeko. Save by Simon Mignolet.
Drilled right-footed shot by Samir Nasri. Craig Gardner makes a clearance.
Gnegneri Toure Yaya takes a shot. Save by Simon Mignolet.
The ball is sent over by Gnegneri Toure Yaya, clearance by John O'Shea.
Shot from 18 yards from Edin Dzeko. Blocked by John O'Shea. Corner taken by Adam Johnson, clearance made by Nicklas Bendtner.
Effort on goal by Aleksandar Kolarov from long distance goes over the crossbar.
Stephane Sessegnon produces a left-footed shot from just outside the penalty box that misses to the left of the target.
Substitution Wes Brown goes off and Matthew Kilgallon comes on.
A cross is delivered by Craig Gardner, Nigel De Jong makes a clearance.
James McClean crosses the ball, Joleon Lescott makes a clearance.
Stephane Sessegnon takes a shot. Vincent Kompany gets a block in.
Vincent Kompany delivers the ball.
Sebastian Larsson gives away a free kick for an unfair challenge on Nigel De Jong. Aleksandar Kolarov takes the free kick.
Aleksandar Kolarov sends in a cross, clearance made by John O'Shea.
Stephane Sessegnon fouled by Gareth Barry, the ref awards a free kick. Simon Mignolet takes the free kick.
Pablo Zabaleta sends in a cross, John O'Shea manages to make a clearance.
Adam Johnson takes a shot from just inside the penalty box which clears the crossbar.
Short corner taken by Adam Johnson from the right by-line.
The offside flag is raised against Aleksandar Kolarov. Simon Mignolet restarts play with the free kick.
Inswinging corner taken left-footed by Adam Johnson, save made by Simon Mignolet.
Free kick taken by John O'Shea.
Booking Nigel De Jong is cautioned by the ref for unsporting behaviour.
Foul by Nigel De Jong on Lee Cattermole, free kick awarded.
Edin Dzeko crosses the ball, John O'Shea manages to make a clearance.
The assistant referee flags for offside against Edin Dzeko. Simon Mignolet takes the free kick.
James McClean takes a shot. Comfortable save by Joe Hart.
Nicklas Bendtner has an effort at goal from 12 yards. Save by Joe Hart.
Adam Johnson takes the inswinging corner, Craig Gardner manages to make a clearance.
The match begins.
Live text and data provided by The Press Association
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.