Bayern enjoyed more possession than PSG and had 31 shots — 12 of which were on target — as the German champion spent most of the night chasing the game having fallen two goals behind after 28 minutes.
But despite wave upon wave of attack, PSG held on to condemn Hansi Flick to his first Champions League defeat as Bayern manager after 15 wins and a draw.
It was Mbappe who opened the scoring on two-and-a-half minutes as he blasted a shot through Manuel Neuer after Neymar had carried the ball deep into the Bayern half.
Marquinhos doubled the visitor’s lead when he coolly finished Neymar’s ball into the box before Eric Maxim Choupo-Moting’s header pulled one back for Bayern.
As the snow continued to pour down in the second half, Bayern, which was without injured striker Robert Lewandowski, kept pushing for an equalizer.
It finally came on the hour mark as Thomas Muller guided in a header from Joshua Kimmich’s free-kick for his 48th Champions League goal — the same tally as Andriy Shevchenko and Zlatan Ibrahimovic.
But the scores weren’t level for long. Eight minutes later, Mbappe finished off a PSG break in clinical fashion as he fired in at Neuer’s near post.
“We tried to hurt them with our strengths and that worked this evening. But we are only at halftime in the encounter and between the two, we have a very important league match.”
The two sides meet again in Paris next week in what promises to be another high-quality, breathless game.
With three away goals, PSG will be the favorite to progress to the semifinals and boost its chances of winning the Champions League — something the club’s owners have craved for the past decade.
For Bayern, which was denied by several saves from Keylor Navas, it was a tough result to take given the manner of the defeat.
“We had a lot of chances to win this game, we’re very down right now … hopefully (next week) we put away our chances,” Alphonso Davies told BT Sport.
‘Excited but not over-excited’
In Wednesday’s other Champions League game, Chelsea defeated Porto 2-0 with goals from Mason Mount — who became the Blues’ youngest Champions League scorer in the knockout stages — and Ben Chilwell.
Chelsea suffered its first loss under Thomas Tuchel at the weekend — a shock 5-2 defeat to West Brom in the Premier League — but was rejuvenated in Seville, which is serving as a neutral venue for both legs of the tie amid coronavirus travel restrictions.
Mount opened the scoring with an exquisite turn and finish from Jorginho’s pass and remained ahead as Edouard Mendy parried away efforts from Pepe and Moussa Marega either side of half time.
Christian Pulisic hit the crossbar in the final 10 minutes before Chilwell increased Chelsea’s lead moments later when he took the ball from Jesus Corona and rounded Agustin Marchesin to score in an open goal.
“We are happy but not too happy. We are excited but not over-excited. We are very aware that today we made a lot of a few good attacks and we got two goals.”
The two other quarterfinal first legs got underway on Tuesday with Real Madrid defeating Liverpool 3-1 and Manchester City beating Borussia Dortmund 2-1.