The 2011 and 2012 champions, who won their opener against Borussia Moenchengladbach by the same score, struggled in the first half despite a hatful of chances against the Bavarian club but broke the deadlock in the 55th minute when defender Matthias Ginter shook off his marker and slotted in.
Coach Thomas Tuchel’s team doubled the lead five minutes later when Marco Reus converted a penalty after Marcel Schmelzer was brought down.
Japan international Shinji Kagawa made sure of a better goal difference than Bayern, drilling in a left-foot shot from 10 metres and Pierre-Emerick Aubameyang added another from close range in stoppage time to take his season tally to two goals in two games.
“I knew that after the 3-0 we were top of the table,” Tuchel, who took over this season from long-time coach Juergen Klopp, told reporters. “But I was especially satisfied with our performance.
“We were constantly present, created chances and I proud the team performed as it did over the entire 90 minutes. During the break I really wanted the team to reward itself for such a performance.”
The result lifted Dortmund, who were disappointing last season and only narrowly secured a Europa League spot, to six points, the same as Bayern, who edged past Hoffenheim 2-1 on Saturday, and Bayer Leverkusen who beat Hanover 96 1-0.
Gladbach, third in the Bundesliga last season and preparing for their maiden Champions League group stage appearance, are still waiting for their first points of the season after losing 2-1 to visiting Mainz 05 with Christian Clemens volleying in the winner in the 79th minute.
Mainz, who twice hit the woodwork in the first half, had taken the lead through Spaniard Jairo Samperio in the 42nd minute before Gladbach, dominant after the break, levelled through Patrick Herrmann’s first goal of the season.
Mainz are in eighth place with Gladbach bottom of the standings.
(Reporting by Karolos Grohmann, editing by Ed Osmond)