Sergio Aguero starred as Manchester City beat Monaco 5-3 in a breathless and dizzyingly end-to-end Champions League last 16 first-leg encounter at a rocking Etihad Stadium on Tuesday.
Raheem Sterling put City ahead, only for Kylian Mbappe-Lottin to level and Radamel Falcao to score twice -- the second goal a magnificent chip -- as Leonardo Jardim's side moved into a 3-2 lead.
But City struck three times in the last 19 minutes, through Aguero's second goal, John Stones and Leroy Sane, to put Pep Guardiola's men in charge ahead of the return leg on March 15.
For a long time it looked likely to be a scarring night for City, who reached the semi-finals last season, as a succession of calamitous defensive errors allowed Monaco to take control.
But Aguero's doggedness allowed them to haul themselves back into the game, abetted by Falcao's failure to convert a penalty early in the second period.
Having recently lost his place in the team to Gabriel Jesus, only to regain it after the Brazilian broke his foot, it was a personal triumph for Aguero, who departed to a standing ovation.
Mbappe took Valere Germain's place alongside Falcao in Monaco's starting XI and the 18-year-old in the flourescent orange boots immediately caught the eye.
He looked to run at City's defence at every opportunity, at one point leaving Nicolas Otamendi for dead twice in five seconds before setting up Benjamin Mendy, who was thwarted by Willy Caballero.
Kamil Glik's evening got off to a bad start when he was booked for taking out Sane, ruling him out of the return leg, but he came close to putting Monaco ahead with a header from a corner.
It was City, though, who went in front in the 26th minute.
Sane lit the fuse, dancing away from three players on the City left and exchanging passes with David Silva before crossing for Sterling to slide home from close range.
But within six minutes Monaco were level as Guardiola's goalkeeping problems came back to bite him.
He had restored Caballero to his line-up, having fielded Claudio Bravo in the FA Cup at Huddersfield Town on Saturday, but the Argentine's wayward kicking gave City jitters all evening.
It was his loose, lofted clearance that gifted possession to Fabinho prior to Monaco's leveller, the Brazilian playing a one-two with Bernardo Silva and crossing for Falcao to net with a flying header.
Moments later came a contentious moment as Aguero nudged the ball past Danijel Subasic and went to ground, only to be booked for diving.
On the touchline, Guardiola reacted furiously, angrily gesticulating at fourth official Teodoro Sobrino, but there was worse to come.
City had all the time in the world to organise themselves when Monaco won a free-kick on halfway, but Fabinho was still allowed to find Mbappe, who steadied himself before finishing coolly.
It might easily have been 3-1 by the interval, with Mbappe and Falcao both going close either side of the former's goal.
Monaco looked poised to extend their lead five minutes into the second half when Otamendi was penalised for fouling Falcao, but the Colombian's weak spot-kick was comfortably saved by Caballero.
City levelled eight minutes later courtesy of a howler from Subasic, who allowed Aguero's shot to go right through him at his near post after a storming run down the right from Sterling.
But the momentum swang back Monaco's way just three minutes later when Falcao shrugged off Stones and then lofted an exquisite right-foot chip over Caballero from just 15 yards.
After Sterling had seen a penalty appeal turned away following a robust challenge by Benjamin Mendy, Aguero levelled again, volleying in smartly from Silva's right-wing corner.
The momentum was City's and after Stones had put them ahead in the 77th minute, jabbing in at a corner, Silva's dinked pass enabled Aguero to set up Sane to set the seal on an extraordinary match.