Mario Balotelli's last-gasp penalty salvaged a vital point for Manchester City at the end of an enthralling Champions League clash with Borussia Dortmund.
City's 17-game unbeaten run at home in Europe looked to be over with the German side leading through a Marco Reus strike and only being denied more goals by a virtuoso performance from an inspired Joe Hart.
But with Roberto Mancini's men on the ropes in what the City manager had described as a must-win encounter in Group D, they were gifted a last-minute chance to save themselves when Neven Subotic handled inside the area, and substitute Balotelli coolly rolled home the resulting spot-kick.
The task facing Man City
Ben SmithBBC Sport
"Manchester City must feel like a horrible nightmare is in danger of creeping back into their minds"
It is a point that keeps City's hopes of reaching the knockout stages alive but it was more than they deserved from a game in which their defence was often ripped to shreds.
The tone for a frantic first half was set in the first few seconds when Edin Dzeko's flick allowed space for Samir Nasri's shot, which was pushed away by Roman Weidenfeller.
Weidenfeller was a busy man in the first half, dashing from his line on two occasions to thwart Sergio Aguero after David Silva sent him running clear, and also tipping over a fizzing shot from the Argentine striker.
But the real heroics were taking place at the other end, where Hart made his first fantastic save of the night after 12 minutes when he dived at full length to claw Mario Gotze's shot on to the post.
Much had been made of the threat posed to City by Polish striker Robert Lewandowski in the build-up to the game, but it was Germany international Gotze who looked most likely to break the deadlock.
Hart had to spread himself to keep out the Dortmund playmaker's dinked shot after a neat Dortmund move before somehow turning a fierce angled effort from the same player on to his crossbar.
The chances kept coming and, after the impressive Silva somehow failed to turn in Pablo Zabaleta's cross from point-blank range, it was down to Hart to keep the game scoreless at the break, this time denying Ilkay Gundogan with another instinctive stop.
Gotze and Hart kept up their personal battle at the start of the second half, with Hart throwing himself to his right to keep out a curling effort from the edge of the area.
But Dortmund continued to look dangerous and and got their reward just after the hour mark, following a disastrous mistake by Jack Rodwell, on for the injured Javi Garcia.
Rodwell's pass across defence was meant for Matija Nastasic but only succeeded in releasing Reus to run into the area and fire in a shot that Hart got a hand to but could not keep out.
City relief and Dortmund agony
Mario Balotelli's penalty was his 11th in official matches -he has converted them all
Dortmund were denied a first win in England in more than 15 years - their last was a 1-0 victory against Manchester United at Old Trafford on 23 April 1997
City's attempt to respond only left them looking even more vulnerable at the back, with Hart blocking another Reus effort and tipping over Gundogan's shot, while Lewandowski failed to turn in a cross from close range.
By now Mancini's men were hanging on rather than pushing for an equaliser, but that changed after Balotelli came off the bench with 10 minutes to go.
When the ball was played into the Dortmund box, Aguero lifted it over Subotic, bringing a handball from the Dortmund defender.
Responsibility for the spot-kick fell to Balotelli, who went for precision rather than power as he sent Weidenfeller the wrong way to dig his side out of what would have been a huge hole.
Even a draw means City still have it all to do to reach the knockout stages for the first time but they at least head for back-to-back ties against Ajax knowing that Madrid and Dortmund are not out of sight.
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.