Robert Lewandowski and Arjen Robben scored late on as Bayern Munich marched on in the Bundesliga and condemned Jurgen Klopp's side to their seventh defeat in 10 games.
Bayern target Marcos Reus had threatened to spark an upset after he slipped in between the Bayern central defenders to meet Pierre-Emerick Aubameyang's cross from the right and direct a header into the far corner in the 31st minute.
It was the first league goal Bayern had let in for 688 minutes.
Arjen Robben scores the winner from the penalty spot as Bayern Munich came from behind to beat Borussia Dortmund
Bayern substitute Franck Ribery had a hand in both goals as Bayern condemned Dortmund to another defeat
Bayern responded by launching wave after wave of attacks and had 25 attempts on goal, 14 on target, but Arjen Robben, Thomas Müller and Robert Lewandowski could not find a way past Dortmund goalkeeper Roman Weidenfeller.
Pep Guardiola sent on Franck Ribery as a late substitution and a minute later he was involved in the move which led to Lewandowski scoring with a clinical strike against his former side in the 72nd minute.
Robben sealed victory with an 85th minute penalty after Ribery was brought down by Neven Subotic in the box.
Dortmund's fifth straight Bundesliga defeat has seen last season's runners-up tumble to third from bottom in the table and their worst-ever start to a campaign is piling the pressure on Klopp who led them to league titles in 2011 and 2012.
Describing his team's position as 'just horrible', he told reporters at the Allianz Arena: 'We still have a lot of construction sites in our squad.
'One could see that today. It is not just through bad luck that we are languishing down there.
Marco Reus scores the first goal with a header for Borussia Dortmund against Bayern Munich
Dortmund's Marco Reus, right, gets in front of Bayern defender to direct header into the far corner
Marco Reus celebrates his 31st minute goal for Borussia Dortmund at the Allianz Arena on Saturday night
'We played our best first half in a long time. We have to start being rewarded for our effort. That is bothering us.'
Dortmund gave Bayern a run for their money in the opening period, pressing high and launching breaks in their trademark lightning-quick style including one which gave them the lead through Marco Reus.
They then lost captain Mats Hummels through injury at halftime, depriving them of some defensive consistency, while the visitors also failed to maintain the same level of pressure at the other end of the pitch.
Two mistakes by substitute defender Neven Subotic were enough to turn the game in Bayern's favour in the second half as goals from Lewandowski and Robben secured a comeback win.
'Fact is we played very little football in the second half. We became too passive,' said Klopp whose team host Galatasaray in the Champions League next week after having won all three games so far to lead Group D.
'We should not change our play like we did in the second half.'
Dortmund have picked up just seven points from their first 10 league games.
The match turned after Bayern coach Pep Guardiola sent on Franck Ribery as a second-half substitute
Bayern striker Robert Lewandowski equalised against his former side with a clinical strike
Bayern striker Robert Lewandowski celebrates scoring the equaliser against Borussia Dortmund
Borussia Dortmund's Neven Subotic remonstrates with Franck Ribery after bringing down for the penalty
Referee Manuel Graefe shows the yellow card to Dortmund's Neven Subotic for bring down Ribery in the box
Arjen Robben scores the winner from the penalty spot for Bayern Munich
Second-placed Wolfsburg kept up the pressure on Bayern with an impressive 4-0 win at Stuttgart.
Ivan Perisic struck twice with Robin Knoche and Kevin De Bruyne also on target as some sloppy defending by the hosts invited the Wolves to take all three points.
The emphatic away win sent a warning that Wolfsburg mean business this season in the race for the title and for Champions League qualification.
Hamburg caused an upset against high-flying Bayer Leverkusen to pick up a rare win and move out of the bottom three.
Holland midfielder Rafael van der Vaart scored the only goal of a fiery encounter midway through the first half to earn Josef Zinnbauer's men only their second win of the campaign.
Werder Bremen got their first win of the season, coming from behind to see off Mainz 2-1.
It maked Viktor Skripnik's league debut as coach in style, with Franco Di Santo scoring both of their goals.
Shinji Okazaki gave the hosts an early lead but Bremen refused to hoist the white flag.
Hannover moved into the top six with a 1-0 win over Eintracht Frankfurt, but it came with a fair portion of luck.
Alexander Madlung put through his own goal with two minutes left to give Hannover their second successive 1-0 victory.
Bayern boss Pep Guardiola celebrates hard-fought victory over rivals Borussia Dortmund
Bayern striker Robert Lewandowski, centre, consoles Dortmund boss Jurgen Klopp after the final whistle
Jurgen Klopp's side have lost seven of their opening 10 games and are one place above the drop zone