Bundesliga: Bayern Munich 0 Borussia Dortmund 3
A tactical masterclass from Jurgen Klopp enabled Borussia Dortmund to rout Bundesliga champions Bayern Munich 3-0 at the Allianz Arena.
Dortmund coach Klopp opted to leave Bayern-bound top scorer Robert Lewandowski on the bench for Saturday's Der Klassieker clash between first and second in the German top flight, and that proved an inspired decision, as his front four ran Pep Guardiola's team ragged.
Henrikh Mkhitaryan - so wasteful in the midweek UEFA Champions League exit to Real Madrid - netted 20 minutes in, with Marco Reus and Jonas Hofmann getting in on the act after the interval to restore Dortmund's three-point lead over Schalke in second.
Meanwhile, Bayern's post-title-winning slump continues.
After dropping just four points all season prior to retaining the crown at Hertha Berlin last month, Guardiola's side have now lost two of their last three Bundesliga games.
Despite Bayern's near-monopoly of the ball early on, the searing pace of Pierre-Emerick Aubameyang and Reus caused the hosts' high defensive line problems on the break.
And those two 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 before the Armenian coolly finished left-footed past Manuel Neuer.
Get FourFourTwo Newsletter
The best features, fun and footballing quizzes, straight to your inbox every week.
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 this time 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.
Predictably, Bayern dominated possession from the outset, but their only attempt of note came via a David Alaba set-piece on 14 minutes, the Austrian firing a free-kick harmlessly wide from 30 yards.
And Bayern were made to pay for their uncharacteristic lack of cutting edge in the 20th minute, as Mkhitaryan took full advantage of some lax defending to break the deadlock.
Buoyed by taking the lead, and the palpable frustrations of Bayern's players and fans, Dortmund grew into the game, but Guardiola's men finally showed signs of life as the first half drew to a close.
A trademark run from Arjen Robben resulted in Rafinha - later dismissed for lashing out at Mkhitaryan - sending in a cross for Mario Mandzukic, who could only volley harmlessly into the arms of Roman Weidenfeller.
Dortmund doubled their advantage almost immediately after the break, though, as a typically incisive counter-attack led by Mkhitaryan ended with Aubameyang feeding Reus, who guided the ball beyond Raeder from 12 yards.
And it was 3-0 on 56 minutes, as Dortmund again made a mockery of Bayern's high line with an unchallenged Hofmann running onto a long ball and rifling past a helpless Raeder.
Bayern's off-colour display was summed up by Guardiola's decision to withdraw both Robben and Franck Ribery after the hour.
A late rally from the hosts saw Mandzukic have a header ruled out for offside but Rafinha was sent off in injury time for his moment of madness.
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.