The striker scored twice in the game's dying stages to save City from a crippling result against 10-man Bayern.
Winless in its four previous Group E outings, Manuel Pellegrini's team looked set to extend that record to a fifth game Tuesday until a late intervention from its Argentine superstar.
City 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 host's 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 halftime.
But Alonso switched from hero to villain when he conceded possession to allow Aguero 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 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 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 it 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 halftime. 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.
Making light of its numerical disadvantage, Bayern then controlled possession, culminating in Lewandowksi slipping 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 host and Neuer went down well to stop a 49th-minute strike from the Spain winger, while James Milner arched a curling strike over as City probed for the equalizer.
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 champion until an uncharacteristically slack pass from Alonso was intercepted by Stevan Jovetic. Augero 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.