City trailed 2-1 at half-time and 3-2 after an hour of a pulsating last 16 first leg encounter but finished with a flourish to peg back the exhilarating Ligue 1 leaders.
Radamel Falcao scored two and missed a penalty for the visitors while teenage star Kylian Mbappe also got on the scoresheet.
But City, who took an early lead through Raheem Sterling and were also controversially denied a penalty, roused themselves when it mattered most with late goals from John Stones and Leroy Sane securing victory – much to the delight of boss Pep Guardiola, pictured.
Defensively, it was a horror night for Stones and Nicolas Otamendi but that was not the headline act. Both sides boasted a strong reputation for attacking football and it was a clash that delivered all the promised excitement.
City grabbed the lead in the 26th minute after brilliant work by Sane, exchanging passes with David Silva and racing towards the six-yard box to tee up Sterling – who stayed narrowly onside to finish.
The hosts’ lead did not last long as Willy Caballero gifted possession to Monaco. Within seconds the ball was in the net as Fabinho crossed brilliantly for Falcao to head home.
Controversy erupted when Aguero raced through on goal and went down as goalkeeper Danijel Subasic challenged. It was a strong penalty claim but referee Antonio Mateu Lahoz saw differently and booked Aguero for diving. Salt was rubbed into City’s wounds when Otamendi reacted slowly to a free-kick and the razor-sharp Mbappe darted into the area and lashed a shot into the roof of the net.
Things almost got worse for City early in the second half as Otamendi was adjudged to have fouled Falcao as the Colombian shot wide, conceding a penalty. The way the decision was made certainly inflamed tensions, with the Spanish referee taking a long time to think, but City escaped.
Falcao’s spot-kick was delayed as an object thrown from the crowd landed on the pitch, but the forward procrastinated further and Caballero saved.
City took advantage to level as Sterling won possession and released Aguero, with the Argentinian drilling his first goal in seven appearances through Subasic’s grasp just before the hour.
But again Monaco responded, with Falcao making a fool of Stones in the area and chipping Caballero for a delightful goal. Mbappe lashed another effort wide soon after but City levelled when Aguero volleyed home from a Silva corner.
It was from another corner that City took the lead, this time Stones atoning for his earlier error by reacting quickly to a Yaya Toure flick-on to strike at the back post.
City did not sit back after that and claimed their fifth of the night when Silva played Aguero through and the Argentinian set up Sane for a tap-in.