Edin Terzic's side were ahead in the opening 10 minutes of the Allianz Arena contest, with Karim Adeyemi finding the net following a blistering break.
Missing a good collection of clear-cut chances, Thomas Tuchel's men were made to pay in the second period as right-back Julian Ryerson doubled Dortmund's advantage.
Bayern thought they had grabbed a consolation through Harry Kane in the closing stages, however his effort was chalked off, meaning that the Bavarians failed to score in Der Klassiker for the first time since August 2019.
Following Bayer Leverkusen's 2-1 success over Hoffenheim earlier in the day, Tuchel's men are now 13 points behind Xabi Alonso's unbeaten boys in the Bundesliga title race.
After the two-week international break, Bayern Munich made three changes from the team which smashed struggling SV Darmstadt 98 prior to the pause, with Konrad Laimer, Sven Ulreich and Real Madrid-linked Alphonso Davies coming in for Aleksandar Pavlovic, Raphael Guerreiro and Manuel Neuer.
As was the case with their hosts at the Allianz Arena, Borussia Dortmund also made three alterations from the XI which earned success before the international pause, with Jadon Sancho, Felix Nmecha and right-back Ryerson all being promoted from the bench.
Having failed to earn a Der Klassiker win in their last 11 attempts, the visitors wasted no time in attempting to rectify that statistic from their point of view, and it was a lovely counter attack which allowed Terzic's men to hit the front after 10 minutes.
After working the ball out of a congested midfield section, Julian Brandt raced towards Eric Dier before laying a pass on the left to the onrushing Adeyemi.
Silencing his critics during the 2023-24 campaign, the 22-year-old latched onto the ball and hit a strike before any of the Bayern centre-backs could block the attempt, which managed to evade the attentions of Ulreich and reach the bottom corner.
Having netted 31 goals in 26 Bundesliga appearances since securing a switch from Tottenham Hotspur in the summer, Kane wasted a chance that he has typically gobbled up in Bavaria to date.
Plying his trade at right-back, Germany international Joshua Kimmich did superbly to make his way down the right and deliver an enticing ball into the box, however an unmarked Kane was unable to keep his flicked effort on target, leaving Alexander Meyer with a watching brief.
Tuchel's troops were on the ascendency heading towards the half-time whistle and the visitors had to clear a ball off their line in the 35th minute, when Dier's knockdown was thankfully - for those of a Dortmund persuasion - hacked away by Nico Schlotterbeck.
Passing up opportunities that he would normally eat up, Spurs legend Kane fired another header wide of the Dortmund net after Leon Goretzka flicked on a corner-kick delivery from defender Kimmich.
With Bayern looking increasingly susceptible in defence as they looked for a leveller, Dortmund managed to take full advantage in the final 10 minutes to double their lead, and the strike arrived from a surprise source.
Following some neat play from Marco Reus on the left, the ball found its way to Sebastian Haller at the edge of the box, and the former West Ham United striker unselfishly fed to the ball to Norwegian Ryerson, who unleashed a low-driven attempt past the outstretched Ulreich and into the bottom-left corner.
For a moment Bayern had managed to reduce the deficit to just a single goal, as marksman Kane drifted into an unmarked position and thumped home a cross from substitute Noussair Mazraoui, however the counter was ruled out by VAR because the Englishman had moved into an offside position.
With seven Bundesliga matches left play, Tuchel's troops have 13 points to gain on Leverkusen if the Bavarians are to retain their German crown.
For Dortmund, a famous win at the Allianz Arena extended their advantage over fifth-placed RB Leipzig to three points, with Terzic's men back in action versus Stuttgart next Saturday.