CNN  — 

Bayern Munich battled past a stubborn Lyon side to set up a mouth-watering Champions League final showdown against Paris Saint-Germain on Sunday.

The German juggernaut was forced to weather some early pressure from the French side, but took the lead after 18 minutes thanks to Serge Gnabry’s stunning strike into the top corner. The 25-year-old doubled the lead soon after, pouncing on an uncharacteristic miss by strike partner Robert Lewandowski to tap the ball into an empty net.

Lewandowski did eventually get his customary goal, rising highest at the far post to nod home Joshua Kimmich’s free-kick late on and end any lingering hopes Lyon had of a comeback.

The 3-0 scoreline is certainly not reflective of the end-to-end entertainment that was on display; Lyon will be left ruing a number of missed opportunities which could have have changed the course of this tie.

READ: Lionel Messi is ‘pillar’ of new Barca project, says club president as Ronald Koeman named coach

Serge Gnabry celebrates scoring the opening goal against Lyon.

It had been 10 years since Lyon last reached a Champions League semifinal, but the underdog in Lisbon showed no early signs of being overawed by the occasion.

Bayern Munich had lost its last four Champions League semifinals coming into this evening and the opening exchanges would have given Lyon confidence that it could extend that run.

The French side, who could only finish seventh in the canceled Ligue 1 season, should have taken the lead inside five minutes after Maxence Caqueret pounced on a loose pass by Thiago and threaded a ball through to Memphis Depay.

Lyon’s captain looked to have done everything right, luring Manuel Neuer out of his goal, but could only hammer his shot into the side netting.

Lyon has never played in a major European final and this team looked intent on making club history. Karl Toko Ekambi got in on the act going forward and single-handedly produced Lyon’s best chance of the game.

After brilliantly dancing past a number of Bayern defenders, the forward’s low strike beat Neuer but crashed against the post and bounced out to safety.

Bayern Munich celebrate Serge Gnabry's second goal against Lyon.

When you fail to take those kind of chances or capitalize on periods of sustained pressure against this free-scoring Bayern side, it tends to make you pay.

In the process of wrapping up the Bundesliga and German Cup titles, Bayern had won its last 19 games coming into this semifinal, won all nine of its Champions League matches this season and scored four goals or more in its last four matches.

Indeed, just 30 seconds after Toko Ekambi had rattled the woodwork, Bayern took the lead through Gnabry. The German international cut inside onto his left foot and drilled a thunderous strike past Anthony Lopes into the top corner.

You sensed Lyon’s bubble – riding high after beating Manchester City in the quarterfinals – had burst; heads dropped and the skip the players had in their step early on quickly vanished. Bayern began to dominate possession and it felt like a second goal for the Germans was a matter of when, not if.

Sure enough, Bayern doubled its lead just 15 minutes later and it was Gnabry again who got the goal, tapping into an empty net after Lewandowski had inexplicably missed from close range.

Serge Gnabry beats Lopes with a powerful strike into the top corner.

Lyon now looked a shadow of the side that upset Manchester City – and the one that started this match. More worryingly still, Bayern had now found its stride and looked capable of scoring every time it got forward, as it had done in the historic 8-2 hammering of Barcelona in the quarterfinals.

The game should have been put beyond doubt in the opening five minutes of the second half, but Ivan Perisic’s tame effort when one on one nestled comfortably into the arms of Lopes.

That lifeline seemed to give Lyon some fresh impetus, as did the introduction of top goalscorer and quarterfinal hero Moussa Dembele.

Thanks to some desperate last-ditch defending, Bayern kept Lyon at bay when it looked as though the French side might snatch a late goal to make the closing stages nervy for the Bundesliga side.

Robert Lewandowski celebrates after scoring Bayern Munich's third goal.

As the clock ticked towards 90 minutes, Bayern finally put the tie beyond doubt thanks to Lewandowski’s sumptuous header. His goal was his 15th of the campaign, making him only the second player to score 15+ Champions League goals in one season after Cristiano Ronaldo.

This semifinal proved just a step too far for a Lyon side that had already stunned two of this season’s Champions League favorites, but will go home with its heads held high.

Sunday’s final now pits two of Europe’s most scintillating front lines against one another. It will take something quite special to outscore this relentless Bayern machine, but fortunately for PSG it has the talent to do just that.