The Bavarians - who had Rafinha sent off late on - were crowned champions over two weeks ago and never got out of first gear as Jurgen Klopp's side ran out comfortable winners
Jurgen Klopp opted to leave Bayern-bound Robert Lewandowski on the bench and that proved an inspired decision, as his front four ran Pep Guardiola's team ragged.
Henrikh Mkhitaryan opened the scoring 20 minutes in, with Marco Reus and Jonas Hofmann getting in on the act after the interval, before Rafinha was sent off for the hosts in injury-time.
Bayern's dominated the ball early on, but the searing pace of Pierre-Emerick Aubameyang and Reus caused the hosts' high defensive line problems on the break.
And the pair combined with Mkhitaryan and Hofmann, the other members of Dortmund's rampant frontline, to put the visitors ahead.
Hofmann's throw-in was flicked to Reus by Aubameyang, and he picked out an unmarked Mkhitaryan in the area, who coolly finished left-footed past Manuel Neuer.
Neuer was taken off at half-time with a suspected calf injury, and his debutant replacement Lukas Raeder's first task was to pick the ball out of the net.
Dortmund's forward line again wreaked havoc, with Reus applying the finishing touch on 49 minutes with his seventh goal in his last five matches.
Hofmann then added a third - before making way for Lewandowski - to affirm Klopp's tactical superiority over Guardiola on the day of his 200th Bundesliga match in charge of Dortmund.
A late rally from the hosts saw Mandzukic have a header ruled out for offside but Rafinha was sent off in injury time for a moment of madness when he struck Mkhitaryan in the face.
And Dortmund comfortably held on to give Bayern a taste of their own medicine after the Bavarians won 3-0 at Signal Iduna Park back in November.