Mbappe crucial
Mbappe curled just wide in the second half before Marco Verratti brought down Rafa Silva just inside PSG's area. The foul was initially missed by Oliver, who swiftly changed his decision after consulting the pitchside monitor, with Joao Mario smashing a finish high into the back of Gianluigi Donnarumma's net.
Mbappe thought he had struck a late winner, only to be ruled offside from Sergio Ramos' flick after acrobatically volleying past Vlachodimos.
Real through despite draw
Meanwhile in Zagreb, Oleksandr Zubkov opened the scoring a minute into the second half to put the Ukrainian side in sight of a sensational result, with the hosts close to doubling their lead when Lassina Traore clipped the crossbar.
Carlo Ancelotti's side, needing a point to secure safe passage to the round of 16, went for broke in the closing stages by moving Rudiger into a forward role. That provided the breakthrough in the closing seconds, the German defender heading past Anatoliy Trubin to deny what would have been a famous victory.
Chelsea on song
Chelsea claimed their first Champions League win in Italy for 19 years by defeating 10-man Milan 2-0 at San Siro to move to the top of Group E. A 4-0 victory over Lazio in November 2003 had represented the Blues' last win on Italian soil in Europe's elite club competition, but this was similarly routine following a contentious Fikayo Tomori red card.
Jorginho's penalty gave the visitors a 21st-minute lead after former Chelsea defender Tomori was dismissed for fouling Mason Mount in the box. Pierre-Emerick Aubameyang then doubled the lead before half-time, with that enough to send Graham Potter's side to the pool summit following Salzburg's 1-1 draw with Dinamo Zagreb.
City held
Sergio Gomez was sent off and Riyad Mahrez missed a penalty as Manchester City were held to a goalless draw by Copenhagen in the Champions League.
City knew a win would seal their place in the round of 16 with two games to spare, but they endured a frustrating Tuesday evening at Parken. Rodri had a goal disallowed for a handball by Riyad Mahrez, who then had a spot-kick saved by Kamil Grabara before Gomez was dismissed for a professional foul in an eventful first half.