Bastian Schweinsteiger, Toni Kroos, Thomas Muller, Mario Mandzukic and Mario Gotze were all on target for the defending champions with Simon Zoller providing the response for Kaiserslautern.
The result sets up a repeat of the 2012 final when 16-time winners Bayern were beaten 5-2 by Borussia Dortmund.
The Bundesliga champions were ahead after 23 minutes when the Kaiserslautern defence failed to pick up Schweinsteiger and the Germany international was left totally free to head in Arjen Robben's corner.
Robben also set up the second as he cut in on the right and played the ball back to Kroos on the edge of the area who sidefooted low past Tobias Sippel.
It was over as a contest five minutes into the second half as Robben was tripped in the penalty area and Muller sent Sippel the wrong way from the spot.
Kaiserslautern got one back on the hour as Florian Dick supplied the cross and Zoller got away from Jerome Boateng to head home at the near post.
But that would be as good as it got for the 2 Bundesliga side with Mandzukic supplying a smart finish across the goalkeeper after being teed up by Gotze and the 21-year-old added the fifth in stoppage-time after Franck Ribery did well to set him up from close range.