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 stage 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.
Real Madrid through
Real Madrid booked a berth in the Champions League knockout phase with a match to spare after strolling to a 3-0 win at Moldovan rivals Sheriff Tiraspol in their lop-sided Group D clash on Wednesday.
Real top the group on 12 points from five games, two more than second-placed Inter Milan with the result also sending the Italian champions through after they beat Shakhtar Donetsk 2-0.
Third-placed Sheriff, who stunned Real 2-1 in the reverse fixture in September, are third on six points and assured of carrying on in the Europa League after the winter break. Fourth-placed Shakhtar have one point.
Real, who have won a record 13 titles in Europe's premier club competition, are at home to Inter in their final group match while Sheriff visit Shakhtar on December 7.
Liverpool maintain perfect record
Second-half goals by Thiago Alcantara and Mohamed
Salah earned a below-strength Liverpool a 2-0 win over Porto to maintain their 100 per cent record in Champions League Group B.
Porto, who started the day second in the group behind already-qualified Liverpool, wasted numerous first-half opportunities and were made to pay a heavy price.
Their record against Liverpool now stands at played 10, drawn three and lost seven.