Goals from Bastian Schweinsteiger, Toni Kroos and Thomas Müller put the holders firmly in command and while Simon Zoller pulled one back on the hour, Mario Mandzukic and substitute Mario Götze rounded out a convincing display to set up a mouth-watering top-flight showdown with Borussia Dortmund in next month's final.
Schweinsteiger sets tone
Hoping to bounce back from back-to-back league defeats, the Bundesliga champions made it abundantly clear early on they were determined to set the record straight. They could have taken the lead after eight minutes when Müller's deflected header bounced off the bar, before Mandzukic skied an effort from inside the area.
Clear-cut goalscoring chances proved rather difficult to come by for Bayern against the stubborn visitors, but Pep Guardiola saw his side's dominance pay dividends 23 minutes into the game when Schweinsteiger nodded Arjen Robben's right-wing corner into the bottom corner. Robben was also at the heart the home side's second goal, with Kroos' supplying the finishing touch shortly after the half-hour mark.
Götze seals it
Another trademark run by the 30-year-old Dutchman forced a foul out of Kaiserslautern left-back Chris Löwe just minutes after the break, allowing Müller to step up and slot the ensuing penalty into the net. With the win all but wrapped up, Bayern eased off the gas, although they should have scored a fourth when Franck Ribery failed to steer the ball into an open net after a fine bit of interplay between Robben and Müller.
To their credit, Kaiserslautern upped the ante and deservedly pulled one back through leading scorer Simon Zoller, but the guests' joy proved short-lived as Mandzukic tucked away Götze's pin-point ball eleven minutes from time. The former Dortmund midfielder found time to add his name to the scoresheet, too, slamming home Ribery's deft back heel with the last kick of the game.
Bayern München: Raeder – Lahm, Boateng, Dante, Alaba (81' Rafinha) - Schweinsteiger (75' Martinez), Kroos - Robben (61' Götze), Müller, Ribery - Mandzukic
Kaiserslautern: Sippel - Dick, Heintz, Torrejon, Löwe (68' Fortounis) - Orban, Jenssen - Matmour, Ring, Zimmer - Zoller (80' Lakic)
Goals: 1-0 Schweinsteiger (23'), 2-0 Kroos (32'), 3-0 Müller (50'), 3-1 Zoller (60'), 4-1 Mandzukic (78'), 5-1 Götze (90')
Felix Seaman-Höschele reporting from the Allianz Arena