Hat-trick hero Sergio Aguero salvaged a 3-2 win over 10-man Bayern Munich to keep Manchester City's UEFA Champions League hopes alive.
Winless in their four previous Group E outings, Manuel Pellegrini's team looked set to extend that record to a fifth game on Tuesday until a late intervention from their Argentine superstar.
They had been handed a huge opportunity to claim a major scalp when Bayern defender Mehdi Benatia was sent off for a professional foul on Aguero midway through the first half.
The City striker converted the resulting 22nd-minute penalty before the hosts' evening began to unravel as Xabi Alonso buried a low 40th-minute free-kick and then Robert Lewandowski put Pep Guardiola's visitors ahead on the stroke of half-time.
But Alonso switched from hero to villain when he conceded possession to allow Aguero to fire the English club level in the 85th minute and, at the same end of the Etihad Stadium where he memorably won the 2011-12 Premier League title against QPR, City's talisman made another telling stoppage-time contribution.
He caught former Eastlands defender Jerome Boateng napping to finish clinically once again.
A win away at Roma will now secure City’s passage in second place behind Bayern, provided the already qualified German champions beat CSKA Moscow at home.
Samir Nasri had a first-minute shot blocked and Frank Lampard, starting due to suspensions for fellow midfielders Yaya Toure and Fernandinho, looped a header over before Bayern established an ominous early rhythm.
A chipped pass from Arjen Robben caught out City defenders Eliaquim Mangala and Gael Clichy and meant Joe Hart had to be out sharply to deny Sebastian Rode.
It was an otherwise assured start by Mangala, who made a vital 19th-minute block to thwart Rafinha as City looked to pin Bayern back with some fine long passing - an approach that soon handed them a major advantage.
Aguero got the better of Benatia chasing a lofted ball from Lampard and referee Pavel Kralovec had little option but to dismiss the defender when he hacked his man to ground.
City's top scorer stroked the resulting penalty past Manuel Neuer and from there, the home team played with increasing confidence - often orchestrated by the evergreen Lampard.
But Bayern brilliantly turned the game on its head in the five minutes before half-time.
Some trademark slick passing drew a foul from Mangala on Lewandowski and Alonso marked his 33rd birthday by guiding a 20-yard free-kick into the bottom corner, as Hart left himself unsighted.
Making light of their numerical disadvantage, Bayern then controlled possession, culminating in Lewandowksi stealing in between Vincent Kompany and Bacary Sagna to send Robben's cross looping into the net.
Alonso pounced on a slack pass from Mangala to Fernando and scooped a return ball from Robben over as City stumbled into the second half.
Jesus Navas' pace down the right flank continued to prove a useful outlet for the hosts and Neuer was down well to turn a 49th-minute strike from the Spain winger behind, while James Milner arched a curling strike over as City probed for the equaliser.
But Pellegrini’s men frustratingly struggled to mount sustained pressure, with a rasping 30-yard drive from Lampard offering Neuer further fleeting involvement with 20 minutes to play.
Clear chances remained elusive for the English champions until an uncharacteristically slack pass from Alonso was intercepted by Stevan Jovetic.
Aguero still had plenty to do but he darted in on goal to slide the ball past Neuer, before he stepped up again to provide even more late drama.
The Argentina marksman found Boateng to be in similarly charitable mood in stoppage time to net the decisive third, ensuring that all roads in City's Champions League destiny now lead to Rome.