Bayern reached their third consecutive domestic cup final by bouncing back from successive Bundesliga defeats to see off Kaiserslautern, who had knocked out top-tier sides Bayer Leverkusen and Hertha Berlin en route to the semis.
Goals by Bastian Schweinsteiger, Toni Kroos, Thomas Müller, Mario Mandzukic and Mario Goetze saw Bayern go through to the May 17 final at Berlin's Olympic Stadium.
Bayern, who wrapped up this season's Bundesliga title with a record seven games to spare, will face Dortmund, who shocked Bayern 3-0 in Munich in the league last Saturday, in a repeat of last season's Champions League final.
Pep Guardiola's Bayern had few problems against the 'Red Devils' of Kaiserslautern, but director of sport Matthias Sammer was unimpressed with the performance ahead of next Wednesday's Champions League semi-final at Real Madrid.
"I have the feeling that we're not really burning hot at the moment," complained Sammer with Bayern making no secret of their desire to win the German Cup and Champions League to repeat last year's feat of winning a treble of titles. "For the matches we have coming up, that's not enough. We have to ask ourselves whether we really want these two titles."
Bayern needed just 24 minutes to take the lead when Germany midfielder Schweinsteiger headed home an Arjen Robben corner having earlier hit the crossbar. Kroos doubled the hosts' lead at the Allianz Arena on 32 minutes to make it 2-0 at the break.
Robben won a penalty five minutes into the second half when he was fouled by Kaiserslautern defender Chris Loewe and Mueller fired home the spot-kick.
Kaiserslautern striker Simon Zoller headed a consolation goal on the hour mark, with his side surviving on less than 30 percent possession, before Mandzukic netted the hosts' fourth to end any hopes of a fight-back.
The Croatia international, who scored a hat-trick in the 5-0 quarter-final drubbing of Hamburg, converted a Mario Götze cross on 78 minutes. Götze then tapped home Bayern's fifth just before the final whistle as the attacking midfielder beat Kaiserslautern's off-side trap.
On Tuesday, Poland striker Robert Lewandowski hit his 100th goal for Dortmund as they beat VfL Wolfsburg 2-0 in the other semi-final. The 25-year-old has vowed to leave the club having delivered silverware this season and faces his future employers Bayern in the Berlin final.
Lewandowski, who will join the Bavarian giants at the end of the season, scored a hat-trick in the 2012 Cup final when Dortmund routed Bayern 5-2. Dortmund took an early lead against the Wolves when midfielder Henrikh Mkhitaryan cut in from the right and unleashed a superb shot just inside the near post on 12 minutes.
With half-time approaching, Belgium Under-21 international Junior Malanda hit the post for Wolfsburg and compatriot Kevin de Bruyne fired the rebound wide for the visitors. It was a costly miss as Dortmund went 2-0 up 72 seconds later when Germany star Marco Reus found Lewandowski unmarked and he slammed his shot into the top left-hand corner to reach his milestone.