Gabriel Jesus scored a 76th-minute winner as Manchester City beat Paris St Germain 2-1 at the Etihad Stadium on Wednesday to take their place in the Champions League knockout stages as Group A winners.
PSG also advanced to the last 16 thanks to Leipzig's win over Club Brugge but the loss highlighted their continued problems in finding an effective way to harness their star-studded attack.
For the opening 45 minutes, City dominated playing with their usual invention and verve while PSG's front three of Lionel Messi, Neymar and Kylian Mbappe too often watched on from afar.
It remains a major question as to whether PSG coach Mauricio Pochettino can build a team capable of winning the Champions League when his side is so lop-sided and with his three big-name forwards reluctant to work back and assist off the ball.
City have no such problems with Pep Guardiola's well-drilled machine combining the technique and class with a high work ethic.
Iklay Gundogan hit the post in the 32nd minute and Riyad Mahrez twice went close while the most Paris managed before the interval was a breakaway which ended with Mbappe curling a shot over the bar.
Four minutes after the break, however, PSG grabbed the lead, Mbappe drilling the ball home at the back post after Messi's cross had deflected off Kyle Walker into the French forward's path.
City drew level when Raheem Sterling poked home after a lovely ball from Rodri had set up Walker for a trademark low cross.
Neymar had a great chance to restore his side's lead when he weaved through the penalty area but he looked disorientated as he put his shot well wide of Ederson's right post.
City always looked the more likely to win the game, with Mahrez and Bernardo Silva asking questions and Gundogan taking charge in midfield in the absence of Kevin De Bruyne due to COVID-19.
It was Mahrez who created the winner, floating a ball to Silva at the far post and the Portuguese midfielder showed a deft touch to cushion the ball to Jesus who picked his spot.
City lead Group A on 12 points with PSG on eight and Leipzig and Brugge, both on four points, left to compete for third place and a spot in the Europa League.
Guardiola praised the way his team reacted to going a goal behind.
"It is a good lesson. When you are losing you have to continue. We knew a draw was a good result for us, but we won," said the former Barcelona coach.
"Always I believe with their forwards, the further they are from our goal the safer we are. Look at the action of Neymar when he missed the shot. They found that from nothing. We have to defend as a team. I thought we were brilliant today," he said.
Pochettino was pleased his side had made the last 16.
"The important thing is to qualify. We beat City in Parc des Princes, we lost here. The difference is the draw against Leipzig and (that is) why we finish second," he said.
"After 0-0 in the first half, we score and I think we were calm as we were controlling it really well. You have to give credit to Manchester City, they are a very good team."