Serge Gnabry's first-half double and a late Robert Lewandowski goal steered Bayern to a final against Paris.
Article top media content
Bayern marched into their first UEFA Champions League final since 2013 with a comfortable victory in Lisbon.
Match in brief
Lyon started positively but spurned two glorious chances to take the lead. Memphis Depay fired into the side-netting with just Manuel Neuer to beat, then Karl Toko Ekambi struck the post as Rudi Garcia's side prospered in behind Bayern's high defensive line.
Soon, however, Hans-Dieter Flick's men proved far more clinical. Serge Gnabry drilled in a wonderful opener after cutting in from the right flank, before poaching a second after Robert Lewandowski had been denied by Anthony Lopes.
Garcia's men continued to threaten after half-time, but Bayern ensured they ended their run of four successive semi-final defeats in this competition when Lewandowski headed in his 15th of their European campaign from Joshua Kimmich's late free-kick.
Man of the Match: Serge Gnabry (Bayern)
Cosmin Contra, UEFA Technical Observer: "Gnabry wins the award because he struck two goals and created more chances to score. He also did good work in defensive areas."
David Crossan, Lyon reporter
Lyon began brilliantly, with their tactics working to perfection, yet failed to take their opportunities and were made to pay. Their thrilling run to the semi-finals will not be forgotten but elimination means no European football for Lyon next season for the first time since 1997 – and that will hurt. That said, all involved have enhanced their reputations in the past fortnight.
Jordan Maciel, Bayern reporter
Lyon came out fighting and almost landed a couple of early blows, but Bayern bided their time and killed the game off with Gnabry's double before the break. Flick's side have set the bar so high recently that it's easy to say this wasn't their best performance; that the intensity and gluttony for goals were lacking. But at the end of the day they have beaten a very awkward opponent and reached their first final since 2013. Job done.
Alphonso Davies, Bayern left-back: "It's a dream come true. Playing in the UEFA Champions League and making it to the final; it's everything you can ask for. Everyone's happy and playing well. These guys have basically won everything but they're still excited. They're still hungry to win this one."
Serge Gnabry, Bayern winger: "We were a bit lucky at the start, Manuel [Neuer] saved well and then they hit the post. But fortunately we took a 2-0 lead into half-time before Lewandowski finished the job late on. Now we want to win the competition."
Karl Toko Ekambi, Lyon forward: "We're thinking we could have done better and could have scored some goals before they did. Luck wasn't on our side. We missed chances and were up against a great side. We found out they were unbeatable."
• Gnabry has scored nine goals in nine European appearances this season, having not found the net in his first 13 matches.
• Gnabry is only the second German to strike twice in a UEFA Champions League semi-final – the other was Thomas Müller against Barcelona in 2013.
• Mario Gómez (12 goals in 2011/12) is the only German player to score more goals in a UEFA Champions League campaign than Gnabry.
• Lewandowski has scored in nine straight UEFA Champions League matches – only Cristiano Ronaldo (11) has a longer streak.
• Lewandowski has 15 goals in this season's competition, two behind Ronaldo's competition record.
• Bayern are only the fourth team in UEFA Champions League history to reach 40 goals in a single campaign, along with Barcelona (1999/2000), Real Madrid (2013/14) and Liverpool (2017/18).
• Bayern have scored the first goal in their last seven UEFA Champions League matches.
• Bayern have won all ten UEFA Champions League games this season and have scored a total of 42 goals in doing so.
• Lyon have kept just three clean sheets in their last 18 UEFA Champions League fixtures.
• Lyon have lost five European semi-finals – their two in the UEFA Champions League were both against Bayern.
Lyon: Lopes; Denayer, Marcelo, Marçal (Cherki 73); Dubois (Tete 67), Caqueret, Guimarães (Mendes 46), Aouar, Cornet; Depay (Dembélé 58), Ekambi (Reine-Adélaïde 67)
Bayern: Neuer; Kimmich, Boateng (Süle 46), Alaba, Davies; Goretzka (Pavard 82), Thiago (Tolisso 82); Perišić (Coman 63), Müller, Gnabry (Coutinho 75); Lewandowski
Bayern face Paris in the final. The showpiece will take place at the Estádio do Sport Lisboa e Benfica in Lisbon and will kick off at 21:00 CET on Sunday 23 August.