Kingsley Coman scored the only goal as Bayern Munich beat Paris Saint-Germain 1-0 in the first leg of their Champions League last-16 tie on Tuesday.
The unmarked Coman swept in an Alphonso Davies cross eight minutes into the second half at the Parc des Princes, just as Kylian Mbappe was preparing to enter the fray on his return from injury after PSG had appeared devoid of ideas without their top scorer.
Mbappe, and the entire stadium, thought he had equalised with eight minutes remaining when he turned in a Nuno Mendes cutback, but the goal was ruled out for offside.
Bayern finished the game with 10 men after Benjamin Pavard was sent off, but it was a frustrating ending for PSG.
The French giants looked much better in the latter stages with Mbappe on the field but also needed a couple of fine saves by Gianluigi Donnarumma to prevent a bigger deficit.
PSG must now hope they can turn the tie around in the second leg in Munich on March 8.
“We are at a disadvantage but we saw that we were capable of causing them problems and now we just need to make sure all our players are in good health and we will go there to try to qualify,” Mbappe, who also had another goal ruled out for a clear offside, said.
Coman, who started his career in Paris, did not celebrate his goal but it was a case of history repeating itself - he was the match-winner when Bayern beat the Qatar-owned club in the 2020 final in Lisbon to become European champions for the sixth time.
“It was a bit strange. I grew up at this club, in this city, I was born here, so it was difficult to celebrate but at the end we are really pleased with the victory,” Coman said.
The fitness of Mbappe had dominated the build-up to the game, with the France superstar initially ruled out because of a thigh injury before making a return to training and being named in the squad.
He was named among the substitutes, while Warren Zaire-Emery, at 16 years and 343 days old, became the youngest player ever to start a Champions League knockout game.
But Bayern had little to be afraid of in the first half as Mbappe - scorer of seven goals in six games in the group stage - watched, with Lionel Messi and Neymar badly missing his presence.
Instead Bayern, playing with a three-man central defence, controlled the game and restricted PSG to just one attempt in the first half.
Yet the Bundesliga leaders did little to trouble Donnarumma apart from a Joshua Kimmich shot that was easily saved.
Bayern coach Julian Nagelsmann took off Joao Cancelo at half-time and replaced him with Canadian international Davies, a change that saw Coman move from the left flank to the right.
PSG also made a change, replacing Achraf Hakimi with France centre-back Presnel Kimpembe, but the biggest cheer of the night had been reserved for Mbappe when he came out to warm up during the break.
The 24-year-old was preparing to come on when Bayern opened the scoring as Davies crossed from the left to the far post where the unmarked Coman finished first-time.
Mbappe promptly replaced Carlos Soler but the French champions needed Donnarumma to keep them in the game as he produced a fingertip save to touch an Eric Maxim Choupo-Moting effort from a Jamal Musiala cutback on to the woodwork.
From the corner that followed, Donnarumma made another fine save from Pavard's header.
PSG needed to find a way to get the ball to Mbappe and they eventually did so in the 73rd minute, a Fabian Ruiz ball over the top sending the forward bounding towards goal.
Bayern goalkeeper Yann Sommer rushed out to block Mbappe's shot with his face before Neymar was denied from the follow-up.
Then Mbappe did put the ball in the net, only for the celebrations to be cut short, and Bayern held on even after Pavard was shown a second yellow for scything down Messi.