Germany winger Gnabry, a scorer in the Barca rout, was influential, smashing in a stunning 18th-minute opener following a lively Lyon start before adding a much easier second.
The prolific Robert Lewandowski added his 55th goal of an incredible season in the closing stages for the Bundesliga champions.
Lyon found some encouragement in the second half but there is little doubt Bayern deserve their spot in the showpiece on Sunday, when they will aim to complete a second treble in seven years.
Memphis Depay shot wide when attempting to round Manuel Neuer following a rare Thiago Alcantara error and Karl Toko Ekambi struck the post as Lyon threatened dangerously early on the break.
Leon Goretzka's scuffed effort had Anthony Lopes scrambling before Gnabry darted in from the right and fired an unstoppable effort into the top-left corner to open the scoring in sensational fashion.
Gnabry tested Lopes again with a stinging drive and doubled the lead by tapping in after Lewandowski uncharacteristically made a hash of Ivan Perisic's low centre.
Marcelo headed Lyon's first effort on target in the 56th minute, while Ekambi wastefully shot their second straight at Neuer one on one after being found in the area by Houssem Aouar.
Philippe Coutinho brilliantly controlled and finished Thomas Muller's pass, only to be flagged offside after a slight touch from Goretzka.
But Bayern did have a third when Joshua Kimmich's delivery was met by a thumping header from Lewandowski for his 15th Champions League goal of the campaign
What does it mean? PSG a daunting road block for brilliant Bayern
Hansi Flick has completely re-energised a Bayern side many had written off under Niko Kovac since assuming the reins, at first temporarily, in November.
Bayern now stand on the cusp of a famous treble and a sixth title in Europe's premier competition. A fired-up PSG will have something to say about that, though, in what promises to be a thrilling final.
Gnabry leads the way
There was a comical moment in a news conference post-Barca where Muller twice attempted a 'Lewan-goal-ski' gag that did not quite land.
Fortunately, on the pitch his team-mate Gnabry did find the intended target with a goal worthy of any Champions League semi-final. His second was all about being in the right place at the time, but all evening Gnabry's presence caused Lyon's defence problems.
Lyon pay for wasteful Ekambi
Pep Guardiola received criticism for his tactics in City's shock loss to Lyon but early doors that his conservatism was not entirely misplaced.
The difference on this occasion is Lyon missed two great chances prior to Gnabry's opener, which set Bayern to cruise control. Had they scored either of those then who knows? Ekambi was guilty on one of those occasions and again in the second half on a disappointing night.
Key Opta Facts:
- Bayern Munich have now won 10 consecutive games in the Champions League, equalling the longest winning streak by a team in the competition’s history (achieved by Real Madrid in 2015 and Bayern themselves in 2013).
- In scoring Bayern's third goal, Robert Lewandowski became only the second player in the history of the Champions League to net 15 goals in a single campaign, along with Cristiano Ronaldo who has done so three times (in 13-14, 15-16 and 17-18).
- Lewandowski has now scored in nine consecutive Champions League games; only Ruud Van Nistelrooy in 2003 (9) and Cristiano Ronaldo in 2018 (11) have scored in as many successive matches in the competition’s history.
- Lyon's Rayan Cherki become the youngest player to appear in the knockout stages of the Champions League, aged just 17 years and two days.
Bayern can now begin preparations for Sunday's final at the Estadio da Luz, where they face PSG searching to become champions of Europe for a sixth time. Lyon's gallant run is over and they must get ready for a new Ligue 1 campaign.