The Cityzens' clash against Les Parisiens was billed as one of the biggest clashes of the European campaign so far, and it was a game that certainly did not disappoint. It was a thoroughly entertaining affair that was easy on the eye and had plenty of drama and moments of magic.
The first half largely belonged to PSG as they were at their dominant best. Neymar and Angel Di Maria were too much for Manchester City's backline to handle, and Kylian Mbappe was also a constant threat, although he was far from his devastating best.
Mauricio Pochettino's men were mighty dominant in midfield, not allowing City's host of attackers any breathing room and maintaining a compact shape in the middle. They broke the deadlock after the returning Marquinhos turned Di Maria's precisely-delivered corner into the City net on 15 minutes.
Pep Guardiola's City looked out of sorts, and with both Joao Cancelo and Kyle Walker not venturing forward regularly, they were relatively limited in attack.
While PSG began the second half similarly, there was a remarkable improvement in Manchester City's approach. They were much calmer as they began to retake control in the middle of the park and pin PSG into their own half. Apart from Marco Verratti's chance where he was just a few inches away from stabbing the ball into an empty net, PSG couldn't fashion many opportunities for themselves.
City's persistence paid off in the 64th minute as Kevin De Bruyne received the ball from Oleksandr Zinchenko outside the box and looked to curl the ball into the far post for an onrushing John Stones. His brilliant cross caught Keylor Navas off-guard as the keeper looked to stop Stones and the ball ultimately crept into the net.
The goal helped an already improved City side find another gear or two as they ramped up the pressure and found the winner in the final 20 minutes.
After winning a free-kick outside the box, De Bruyne positioned himself to take the strike only for Mahrez to run up and unleash a venomous effort quickly. Mahrez's hit went through the PSG wall and past Navas' outstretched hands, giving Manchester City the win.
Matters got worse for the home side just six minutes later as Idrissa Gana Gueye committed a horror tackle on Ilkay Gundogan's achilles and was given a straight red card by Felix Brych.
City now have two away goals to defend in six nights' time at the Etihad Stadium, where they have been formidable over the course of the campaign bar the odd slip-up. Pochettino and co could live to regret their performance in the second 45 minutes, however, as they could have and should have made City pay for a poor start to the game.
On that note, here are the player ratings for Manchester City's UCL semi-final clash against PSG in Paris.
PSG Player Ratings
Keylor Navas — 4/10
Made a poor judgment call by staying on his line for City's first goal, and he failed to react to De Bruyne's ball in time. His error for the equaliser cost his side the game. Horror show.
Alessandro Florenzi — 5/10
Got the better of Foden in the first half and bombed forward when possible, but failed to provide any real threat in the second half.
Marquinhos — 7.5/10
Another crucial UCL game, another Marquinhos goal. Scored in the quarters last year and this year, and now has a semi-final goal to his name. One of PSG's only bright sparks on the night, and the captain led by example. Most touches (78), passes (68), and clearances for his side, and scored their only goal.
Presnel Kimpembe — 5/10
Didn't have to deal with too much throughout the game and was composed at the back, but should have done better for Mahrez's free-kick. Kimpembe jumped away from the ball, creating space between himself and Parades which led to the goal.
Mitchel Bakker — 5.5/10
Started off the game very well and kept Mahrez in check, but as City and the Algerian grew into the game, he found it difficult to keep up. Won one of his eight duels and committed three fouls.
Idrissa Gana Gueye — 4/10
Good first half in which he snuffed out City's attacks, but Gueye's straight red card was one of the biggest talking points of the game. A shocking tackle that deservedly saw him sent off.
Leandro Parades — 6/10
One of their better displays for the Parisiens. Joint-most tackles for PSG (three), completed three of his four long balls and linked the defence and midfield well. Unnecessarily booked for time-wasting but a combative display on the whole.
Marco Verratti — 6.5/10
Despite his side collapsing around him, Verratti stood strong in the middle. Only player to start the game who didn't misplace a single pass (36/36) won six of ten ground duels and created one chance. Joint-most tackles for PSG (three, with Parades) and was very quick in transitions. Unlucky not to score.
Angel Di Maria — 7.5/10
PSG's best player on the night. Created the opener with a sublime corner delivery, completed more dribbles than any player on the pitch (five, as many as all PSG players combined), put in two crosses, two tackles, and most shots (four). Vintage display.
Kylian Mbappe — 6.5/10
Mbappe was crucial in helping PSG stretch the city defence and he delivered four key passes, but the French striker was far from his best on the night. Was marshaled very well by Dias and co.
Neymar — 7/10
Brilliant first half from the Brazilian as he ran City ragged. However, his influence faded away in the second half as City began to assume control of the game. Created two chances, had two shots on target, but failed to provide anything more substantial. Booked for a silly foul on Dias.
Danilo Pereira (Di Maria, 80') — 5/10
Brought on with ten minutes to go after Gueye's red card, didn't have much to do.
Ander Herrera (Parades, 83') — 6/10
Won a few free-kicks in quick succession and was energetic off the bench, but not much else of note.