Madrid dominated the majority of a pulsating contest at the Santiago Bernabeu and looked to have sewn up an impressive victory when Karim Benzema scored his second goal in the 79th minute.
But PSG pulled off an unlikely turnaround as Mbappe capitalised on a defensive mix-up to pull one back in the 81st minute before Pablo Sarabia, once of Real, drove into the top corner second later.
“Real were better for long periods,” said PSG coach Thomas Tuchel. “We were lucky but that’s not a crime.”
Gareth Bale, who came on as a substitute to a mixed reception from the home fans, almost won it in injury-time when his bending free-kick struck the post.
The draw means PSG will go through as group winners while Madrid are guaranteed to finish second after Club Brugge drew 1-1 at Galatasaray in the early kick-off.
Madrid’s late capitulation tarnished an excellent display that highlighted their transformation since the 3-0 thrashing at the Parc des Princes in September.
“It was a great performance,” said Zinedine Zidane. “The players are not happy with the result but you have to be happy with what we have done for 80 minutes. I’d take that performance all day long.”
There was also the worrying sight of Eden Hazard hobbling off with what looked like an ankle injury in the second half, with the Clasico against Barcelona only three weeks away.
“It’s more than just a knock but I hope the twist is a minor one,” said Zidane.
Neymar was also left on the bench by Tuchel despite recovering from a hamstring injury, only to be brought on at half-time. It was his dummy that led to Sarabia’s equaliser.
“I didn’t want to risk him,” said Tuchel. “I prefered to be sure he could finish the match.”
Zidane’s press conference on Monday became another ode to Mbappe, who will reportedly be Madrid’s number one target next summer.
– Mbappe impresses –
The Frenchman, in his 100th game for PSG, looked like he wanted to put on a show, puffing out his chest after an early foul by Sergio Ramos and squeezing Zidane’s hand as he fetched a ball from behind his back.
The threat of Mbappe hung over the match but Madrid were much the better side, slicker in their passing, faster with the ball and more aggressive in winning it back.
Their opening goal came in the 17th minute and Hazard started it, skipping between Thomas Meunier and Marquinhos before switching to the right. Isco struck Fede Valverde’s pull-back against the post before Benzema showed a cool head to find the corner.
On the back foot for most of the half, PSG twice went close towards the end of it. Mbappe, slipped through by Angel Di Maria, opted to shoot when he might have squared for Mauro Icardi.
Icardi was then brought down in the area after nipping around Thibaut Courtois. Referee Artur Dias pointed to the spot and showed the goalkeeper a red card but a VAR review showed Idrissa Gueye had pushed Marcelo in the build-up.
Madrid looked to have put the game to bed when Luka Modric ghosted clear and Marcelo’s cross found the deadly Benzema free at the back post.
But the celebrations had barely finished when Mbappe pulled one back, a gift as Courtois and Raphael Varane allowed Meunier’s cross to slip between them, leaving the 21-year-old with an open goal.
It felt like a consolation but PSG had other ideas as a clever dummy from Neymar fooled the entire home defence and the ball cannoned out to Sarabia, who swept it into the top corner.
Both teams looked for a winner and PSG went close, Mbappe firing into the side-netting before Bale’s bending free-kick hit the post deep into injury-time.