Substitute Mario Gotze scored on his return to Borussia Dortmund as Bayern Munich preserved their four-point lead at the top of the Bundesliga.
joined Bayern for £31.5m in the summer
and was jeered throughout, prodded home 10 minutes after his introduction in the 56th minute.
Arjen Robben broke clear and chipped in a second with five minutes remaining.
And Thomas Muller guided in a low shot from Philipp Lahm's cross as Bayern produced a ruthless finish.
Gotze's move from Dortmund, who finished runners-up to Bayern in the Bundesliga and Champions League last season, has been held up as the perfect example of the Bavarian club's suffocating power over the rest of the Bundesliga.
- Bayern appearances:
The 21-year-old received a predictably angry welcome from his former club's fans, even choosing to warm up in the tunnel at one point.
But he took little time to remind Dortmund of his quality and, although he refused to celebrate, Gotze's contribution set Pep Guardiola's unbeaten side on their way to a significant victory that moves them seven points clear of Jurgen Klopp's team.
Robben and Muller added late goals to give the scoreline a comprehensive feel that was harsh on a Dortmund team that impressed despite a
lengthy injury list.
The hosts made a bright start, with Jakub Blaszczykowski threading a second-minute pass through only for Robert Lewandowski to thump over from close range.
Bayern slowly took the ascendancy but were restricted to a wild Toni Kroos effort before Mario Mandzukic failed to get a firm touch on a fine ball from Robben.
After the interval, Lewandowski failed to make contact with a Sven Bender cross to waste a good opportunity.
Big win for Bayern
Bayern's win was their first in seven Bundesliga meetings with Borussia Dortmund. They had not beaten Jurgen Klopp's side in the league since February 2010.
At the other end, Muller flicked wide at the near post following a Kroos corner before Guardiola sent on Gotze.
And 10 minutes later, the midfielder collected a cross from Muller and prodded past Roman Weidenfeller into the corner.
Dortmund midfielder Henrikh Mkhitaryan was denied by Manuel Neuer after he was picked out by a deep cross from Kevin Grosskreutz, while the Bayern goalkeeper also did well to dive to his left to push away a low shot from Marco Reus.
But with Dortmund pushing forward, Thiago Alcantara switched the play to the left and Robben surged into the area before clipping the ball into the far corner.
And less than two minutes later, Bayern produced another slick passing move that ended with Muller producing a neat finish from Lahm's ball to wrap up the points.
- 01 Weidenfeller
- 19 Großkreutz Booked
- 37 Durm
- 06 Bender (Piszczek - 79' )
- 02 Friedrich
- 25 Papastathopoulos
- 16 Blaszczykowski (Aubameyang - 71' )
- 18 Sahin
- 09 Lewandowski
- 10 Mkhitaryan Booked (Hofmann - 71' )
- 11 Reus
- 05 Kehl
- 07 Hofmann
- 17 Aubameyang
- 20 Langerak
- 23 Schieber
- 26 Piszczek
- 30 Günter
- 01 Neuer
- 13 Rafinha Booked (van Buyten - 79' )
- 27 Alaba
- 21 Lahm
- 17 Boateng Booked (Thiago Alcántara - 64' )
- 04 Dante
- 25 Müller
- 08 Javi Martínez
- 09 Mandzukic Booked (Götze - 56' )
- 39 Kroos
- 10 Robben
- 05 van Buyten
- 06 Thiago Alcántara
- 15 Kirchhoff
- 19 Götze
- 22 Starke
- 23 Weiser
- 34 Höjbjerg
Ref: Manuel Gräfe