Mueller fed Goetze from the right and the forward was left unchallenged just inside the area to drill the ball inside the far post with the outside of his foot. Goetze refrained from celebrating the goal but was mobbed by teammates.
Robben doubled the lead in the 85th by collecting a long ball from Thiago Alcantara and chipping home. Robben then fed Philipp Lahm on the right who passed inside for Mueller to complete the victory in the 87th.
Bayern stretched its record unbeaten run to 38 matches as Pep Guardiola's team retained a four-point lead. Dortmund's second straight league loss dropped it to third behind Bayer Leverkusen, which won 1-0 at Hertha Berlin thanks to Stefan Kiessling's eighth goal of the season.
Leverkusen is now three points ahead of Dortmund, which trails Bayern by seven.
Dortmund, unbeaten by Bayern in six previous league games, was missing its regular back four. Bayern was without Franck Ribery, among others, with both teams hit by injuries.
Manuel Friedrich, a 34-year-old former Germany defender who had been without a club this season, made his debut for Dortmund after getting a contract earlier this week.
"We didn't deserve to lose by such a clear score, but we broke down after the first goal," Friedrich said.
Bayern put on some early pressure but Robert Lewandowski had the first chance, sending high his volley from close range. Bayern goalkeeper Manuel Neuer made a good save from Marco Reus, while Roman Weidenfeller caught Mario Mandzukic's half-volley without problems.
Mandzukic was ineffective and was replaced by Goetze, which proved to be a winning move by Guardiola.
"We won against a team with the best counterattack in the world," Guardiola said. "If you let them run, they are unstoppable. We played well the first 15 minutes but the rest of the first half was not good. We were better in the second half."
Dortmund coach Juergen Klopp said he didn't care by how much his team lost.
"Until 1-0 we had the better chances, but we left Mario unmarked to score and after the second goal we gave up," Klopp said.
In other matches, Eintracht Frankfurt overcame a two-goal deficit before conceding a late equalizer in a 3-3 draw at home against Schalke.
Nuremberg remained without a win this season by playing to a 1-1 draw at home with Wolfsburg, Freiburg won 1-0 at Eintracht Braunschweig and Augsburg beat Hoffenheim 2-0.
Schalke scored two quick early goals, before Frankfurt replied with three after the break. But a lucky bounce allowed Benedikt Hoewedes to secure the late draw for Schalke.
Frankfurt has lost several points by conceding goals in the last 10 minutes and again experienced a similar fate.
Schalke went ahead in the 14th when Johannes Flum headed into his own net while attempting to clear a cross from Atsuto Uchida. Four minutes later, Joel Matip doubled the lead with a header off a free kick from Dennis Aogo.
Flum struck the post before putting Frankfurt on the board in the 56th with a looping header over Schalke goalkeeper Timo Hildebrand. Frankfurt's equalizer was similar, with Joselu connecting with a cross from Sebastian Jung to send another lob over Hildebrand.
Joselu, back in Eintracht's starting lineup for the first time since the opening round, put his team ahead with a blistering left-foot shot from the edge of the penalty area.
But in the 86th, a Frankfurt clearance bounced back into the area to fall kindly in front of Hoewedes, who slotted home for the draw.
In Berlin, Kiessling notched his eighth goal of the season but Leverkusen's second forward Sidney Sam limped off the pitch early in the game with a hamstring injury and could miss next week's Champions League match against Manchester United.