The Bavarian side was four up after 22 minutes with goals from Lukas Posolski, Ze Roberto and a brace from Luca Toni but Andreas Ottl had the last word with a 67th minute strike.
The game had a storming start as Podolski broke the deadlock after three minutes curling a fine ball in the top corner from the edge of the area.
Five minutes later Ze Roberto doubled the lead connecting with Philipp Lahm's cross.
The visitors were completely stunned by this shocking start but things were far form over as Italian marksman hit the third from close range, 18, and volleyed the fourth four minutes later to increase his tally of Bundesliga goals to eighteen.
Dortmund were destroyed and unable to threaten Bayern Munich's goal. However the latter had no mercy and Ottl hit the fifth goal of the day after being assisted by Podolski.
The result leaves Bayern on top of the table with 60 points, 10 ahead of second-placed Werder Bremen.
Bayern will face Dortmund next Saturday in the Cup final.