For nearly six years Manchester City have been waiting for a European classic here at the Etihad Stadium, a game to show them what all the fuss about the Champions League is about. Well here it was, one of the best games in any competition at any point in the last few years.

First City knocked themselves out of Europe, conceding three ludicrous away goals to a deadly Monaco side. Then, realising what they had done, and how much they still wanted to be in this tournament, they roared back at Monaco, scoring three goals in 11 gleeful minutes to take the game 5-3.

It was an eight-goal thriller that, with better finishing, could have easily seen twice as many. Both sides boasted world-class front-lines and defences barely able to do the basics. There was one missed penalty for Monaco and another unfairly denied to City. It could have ended with any high single-digit score for either side, 5-3 was just the way the dice fell. There were more plot arcs in this 90 minutes than some teams manage in a season. It was the best game played here since Sergio Aguero’s 94th minute title-decider against Queens Park Rangers, nearly five years ago.

Raheem Sterling opened the scoring with a tidy finish after 26 minutes (Getty)

At the final whistle the City players and fans celebrated with a mixture of exhaustion, relief and a clear sense that something had been cracked. This was not a perfect performance, it was deeply flawed and if details had gone differently City would be waking up in crisis on Wednesday morning. But this felt like the overdue emotional connection between club and competition, first hinted at in the rout of Barcelona here in the group stage in November.

This was a game bigger than individuals but if it belonged to any man it was Sergio Aguero. His last start in a serious game, Premier League or Champions League, was one month ago against Tottenham. He now plays with the weight of knowing he is not Pep Guardiola’s first choice, and with his City future in serious doubt.

Kylian Mbappe's thunderous strike sent Monaco in ahead at the break (Getty)

And yet Aguero played with the anger of a man who at 28 has to prove he is not finished yet. He inspired City, scoring the second-half equalisers at 2-2 and 3-3 as well as setting up the clinching fifth for Leroy Sane. He should have had a first-half penalty which, in another world, might have put City 3-1 up. As important as any of that though was the running, tracking and hassling which Aguero now sees the teenage Gabriel Jesus doing better than him. He did it so well that he had Guardiola joyously applauding him in the second half when he stole the ball on the edge of City’s box.

City’s specialist defenders, though, were a shambles, as bad as they have been all season. Monaco are a very good team but Radamel Falcao and Kylian Mbappe looked like scoring with every attack. Mbappe killed City with pace, Falcao with intelligence, scoring two quality finishes either side of one missed penalty. This was a disastrous night for Nicolas Otamendi and John Stones and the fact that Stones bundled in City’s fourth at the back post does not change that.

Falcao's poor spot-kick was easily held by Willy Caballero (Getty)

It was clear from the start this was going to be a good game although no-one could have known quite how good. Both teams were top-heavy with quality, leaving holes in defence, and matches like that do not often end 0-0. City struck first, taking advantage of their early superiority. Leroy Sane span away from Djibril Sidibe, swerved past Fabinho, got the ball back from David Silva and drove in a cross. Raheem Sterling darted in and prodded City ahead.

Another team would have slowed the tempo down but never has there been less game-management in a big Champions League tie than here tonight. City continued to push, eventually giving up a goal to Monaco’s high press. Willy Caballero skewed a kick to Fabinho, who exchanged passes with Bernardo Silva and crossed to the far post. Falcao got away from Stones and Sagna and headed in.

City tried to hit back and Aguero, not for the last time, ran between Monaco centre-backs Kamil Glik and Andrea Raggi. He shaped to skip past Danijel Subasic but fell over his leg, seeking contact and finding it. Referee Antonio Mateu Lahoz booked him for diving.

The former Manchester United striker atoned for his miss with a brilliant chip (Getty)

City were furious and chose the worst time to lose their cool. Their defence was a mess and when Kylian Mbappe nearly scored, running onto a goal-kick, they should have been warned. But when Fabinho chipped an early free-kick over Stones’ head, just before the break, they did not learn, and Mbappe buried it into the net.

In normal matches the half-time break gives the teams a chance to regroup. Not here. With Monaco’s first attack they won a penalty and a chance to go 3-1 up. Falcao got goal-side of Otamendi who brought him down, the penalty eventually given by the assistant behind the goal. Falcao, one of the best finishers of his generation, stepped up with a chance to kill City. He stuttered and, implausibly, shot weakly into Caballero’s grateful arms.

The crowd went wild, City fed off their energy and launched their first of two second-half comebacks. Sterling stole the ball and fed Aguero, again running in behind. He got his shot away early, it zipped through Subasic’s hands and into the net.

Sergio Aguero put City on terms with a fabulous volley (Getty)

City had the momentum at 2-2 but did not know what to do with it. So they conceded the most painful goal of the night. Falcao chased a hopeful channel ball with Stones but he held the defender off before humiliatingly skipping inside him to get in on goal. Caballero came out and Falcao impetuously dinked the ball over him, up then down, more than making up for his penalty miss.

This was the moment at 3-2 down when City were at their lowest, looking like a side with no business in the latter stages of the competition. They could easily have folded and said goodbye to European football for a while. But they hit back with a venom few at the Etihad really expected. Their season was not ending here.

John Stones tapped in at the far post to complete City's remarkable comeback (Getty)

First Aguero volleyed a David Silva corner in at the far post, picking the ball out of the net and running it back. With City’s next corner, Toure flicked it on at the near post and Stones bundled it in redemptively after a defensive disaster. City were ahead the first time since Falcao’s first-half header, which felt like a dimly-remembered event from a time that had crumbled into dust.

It was almost no surprise when the fifth came, after a move that would be remembered in any other match. Quick passing found Silva, who chipped the ball over the top to Aguero, who squared to Sane who finished, avoiding the off-side Sterling. Bedlam did not then unfold, it had been happening all night.

Manchester City (4-3-3): Caballero; Sagna, Stones, Otamendi, Fernandinho (Zabaleta 62); De Bruyne, Toure, David Silva; Sterling (Navas 89), Aguero (Fernando 87), Sane.

Subs not used: Bravo, Fernando, Nolito, Navas, Delph, Iheanacho.

Monaco (4-2-3-1): Subasic; Sidibe, Glik, Raggi, Mendy; Fabinho, Bakayoko (Dirar 88); Bernardo Silva (Moutinho 85), Mbappe (Germain 79), Lemar; Falcao.

Subs not used: De Sanctis, Dirar, Moutinho, Carrillo, Germain, Diallo, Toure.

Referee: Antonio Miguel Mateu Lahoz