Raheem Sterling and Gabriel Jesus helped the side come back after Kylian Mbappe gave the visitors the lead early into the second half.
The Sky Blues were in control for most of the match that served up a European classic with some incredible quality football on show.
PSG, meanwhile, will be kicking themselves for missing a few good chances, particularly through Kylian Mbappe and Neymar.
Yet they're through to the last-16 but as group runners-up. This means a potentially tough draw awaits them in the next round.
Here are the player ratings for Manchester City and PSG:
Ederson - 7/10
The City custodian witnessed little action on his end. Though he'll feel he should've done better for Mbappe's goal which slipped through his legs.
Kyle Walker - 7.5/10
He closed down Mbappe in the first half before nicking the ball off him in the second and was also involved in the equalizer.
John Stones - 6.5/10
A solid game for Stones, barring that calamitous moment when he was dispossessed near the half-way line. It led to a PSG counter which Mbappe wasted.
Ruben Dias - 7/10
A figure of calm and composure in City's defense as Dias also made a crucial block on Messi in the second half.
Joao Cancelo - 7/10
The in-form Portuguese was heavily involved in City's first-half barrage but failed to close down Mbappe for PSG's opener.
Ilkay Gundogan - 7.5/10
He led City's press and was crucial in stitching together attacking plays with his range of passing. The German also saw an effort come off the post.
Rodri - 7/10
Excellent on the ball and key to controlling City's tempo, Rodri hit all the right notes. He also picked out Walker with a perfectly-timed pass in the build-up to Sterling's equalizer.
Oleksandr Zinchenko - 6.5/10
The youngster was given a rare start and made a nice block on Marquinhos in the first half.
Riyad Mahrez - 8.5/10
Much of City's attacking impetus came from Mahrez down the right. He also nearly scored a goal in the first half after brilliantly cutting inside. He also played a key role in the winning goal.
Bernardo Silva - 8.5/10
A lively attacking performance from the Portuguese ace who looked particularly dangerous in his underlapping runs.
Raheem Sterling - 7.5/10
He was kept silent by Hakimi for much of the game. But took his chance when it mattered, scoring the equalizer that sparked the comeback.
Gabriel Jesus - 8/10
He struck the winner in the 76th minute with a fine finish. Impact substitution.