Borussia Dortmund 0-3 Bayern Munich
Substitute Mario Gotze scored on his return to Borussia Dortmund as Bayern Munich preserved their four-point lead at the top of the Bundesliga.
Gotze, who 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.
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.
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.
- 19GroßkreutzBooked at 45mins
- 6BenderSubstituted forPiszczekat 79'minutes
- 16BlaszczykowskiSubstituted forAubameyangat 71'minutes
- 10MkhitaryanBooked at 56minsSubstituted forHofmannat 71'minutes
- 13RafinhaBooked at 45minsSubstituted forvan Buytenat 79'minutes
- 17BoatengBooked at 36minsSubstituted forThiago Alcántaraat 64'minutes
- 8Javi Martínez
- 9MandzukicBooked at 45minsSubstituted forGötzeat 56'minutes
- 5van Buyten
- 6Thiago Alcántara
- Manuel Gräfe
- Shots on Target