Man City sealed their status as group winners in the Champions League after coming from behind to beat PSG 2-1 thanks to goals from Raheem Sterling and Gabriel Jesus.
Although PSG were able to punch through City's midfield lines on a few instances, the early exchanges belonged to Pep Guardiola's side.
Only four minutes had elapsed before PSG were forced into drastic action. Riyad Mahrez's free-kick floated to the far post where Rodri rose highest and headed towards goal, only for Presnel Kimpembe to divert the ball off the line.
There was a similar moment just shortly after. City worked the ball down their right-hand side between Ilkay Gundogan and Bernardo Silva before Mahrez collected the ball and only a goal-line intervention from Achraf Hakimi prevented the home side from going ahead.
Gundogan then struck the post from the edge of the area after Nuno Mendes botched his clearance, before PSG threatened the City goal for the first time on the evening.
John Stones was caught on the ball in midfield but, when Kylian Mbappe was released by Neymar, the Frenchman could only curl his effort high and wide.
PSG emerged for the second half with greater impetus, and they were rewarded in the 50th minute when Mbappe broke the deadlock on the counter-attack.
Working the ball down the left, Lionel Messi arrowed his pass across goal via a deflection from Stones. Free at the back post, Mbappe collected the ball and struck through the legs of Ederson to send the travelling support into a frenzy.
However, the away side were ahead for just 12 minutes before Raheem Sterling restored parity. Kyle Walker met Rodri's searching pass inside the penalty area and, when Gabriel Jesus could not convert from point blank range, Sterling reacted at the back post to prod the ball home.
Neymar then had an opportunity to restore PSG's advantage when he slalomed his way through the City defence, only to shoot wide with his weak foot.
Greater punishment then arrived just moments after when Gabriel Jesus delivered the fatal blow. Mahrez's cross to the back post was intelligently cushioned into the path of the Brazilian by Bernardo Silva, who stroked the ball beyond Navas.
Here's how both teams rated.
Man City player ratings
1. Goalkeeper & defenders
Ederson (GK) - 5/10 - Had very little to do other than picking the ball out of the net.
Kyle Walker (RB) - 7/10 - Made a big contribution in the lead up to Sterling's goal, picking the right moments to burst into the penalty area.
John Stones (CB) - 4/10 - A hairy moment which led to Mbappe's chance in the first half, but solid otherwise.
Ruben Dias (CB) - 6/10 - Barely broke a sweat, which says just as much about his own qualities that it does PSG's game plan.
Joao Cancelo (LB) - 6/10 - Such a threat down the left for Guardiola's side, constantly troubling Hakimi with his footwork.
Rodri (DM) - 8/10 - Vital in stopping PSG's counter-attacking opportunities, showing great positional awareness, and was extremely efficient with his use of the ball.
Oleksandr Zinchenko (CM) - 3/10 - Man City's injury issues meant a start in midfield for the Ukraine international, but the game passed him by.
Ilkay Gundogan - (CM) - 5/10 - His movement from midfield caused PSG issues, constantly looking to attack the space in the visitors' backline.
Riyad Mahrez (RW) - 6/10 - Justified his selection, constantly demanding the ball on the right hand and asking questions of Nuno Mendes, especially in the first half.
Bernardo Silva (ST) - 8/10 - A thankless task as the false nine, seeing very little of the ball in the first half, but shone after the interval.
Raheem Sterling (LW) - 6/10 - A very ineffective performance until he provided the finishing touch to level for City in the second half.
Gabriel Jesus (ST) - 6/10 - Provided a focal point for City in the second period and grabbed the decisive goal.
PSG player ratings
5. Goalkeeper & defenders
Keylor Navas (GK) - 5/10 - Wasn't required to make a proper save given the formidable central defensive pairing infront of him.
Achraf Hakimi (RB) - 5/10 - Very few sightings of the attacking third, although he wasted a promising counter-attack in the second half.
Marquinhos (CB) - 7/10 - His sensing of danger in the penalty box was impeccable, making a couple of crucial last ditch blocks.
Presnel Kimpembe (CB) - 7/10 - A commanding performance, putting his body on the line on countless ocassions and was unfortunate to be on the losing side.
Nuno Mendes (LB) - 8/10 - Given the nod amid Juan Bernat's absence and was the stand out for PSG, playing a big part in the lead up to Mbappe's goal.
Leandro Paredes (CM) - 7/10 - Impressive at the base of the midfield, thwarting a few dangerous City moves and cleverely drawing fouls when required.
Idrissa Gueye (CM) - 5/10 - Expended most of his energy having to track Mahrez, rendering him ineffective when he got on the ball.
Ander Herrera (CM) - 2/10 - Given the nod over Marco Verratti, but did little to justify his selection.
Lionel Messi (RW) - 6/10 - Fewer touches of the ball than he'd ordinarily enjoy, but he made the difference in the lead up to Mbappe's goal, albeit with a slice of fortune.
Kylian Mbappe (ST) - 7/10 - The most lively of the PSG front three, rewarded with his goal shortly after the interval.
Neymar (LW) - 2/10 - A few flicks here and there, but struggled to string anything meaningful together. Passed up a gilt-edged chance minutes before City's winner.
Danilo (CM) - N/A
Angel di Maria (AM) - N/A
Thilo Kehrer (CB) - N/A