Robert Lewandowski’s hat-trick outdid Erling Braut Haaland’s early double as Bayern Munich came from behind to beat Dortmund in a Der Klassiker thriller.
Haaland drove Dortmund ahead from 20 yards after just 74 seconds and then turned home Thorgan Hazard’s cut-back.
But Lewandowski steered in Leroy Sane’s cross and levelled from the spot after Mahmoud Dahoud fouled Kingsley Coman.
Leon Goretzka drilled Bayern ahead late on before Lewandowski’s third confirmed a return to the top of the Bundesliga.
Victory moved Hansi Flick’s reigning champions two points clear of second-placed RB Leipzig, who had briefly climbed above them by winning at Freiburg earlier on Saturday.
Dortmund, meanwhile, drop a place to sixth, four points off the Champions League places, their woes compounded by a knock to Haaland that forced the Norway striker off in the second half.
He joins England winger Jadon Sancho on the treatment table, the England winger absent with a thigh injury, and Dortmund will be desperate for both to be fit by Tuesday as they bid to protect a 3-2 first-leg advantage against Sevilla in the Champions League last 16.
Haaland’s hasty hundred as Lewandowski landmark looms
Haaland’s two early strikes amazingly brought his career tally to 100 senior goals in all competitions at the tender age of 20.
He has taken just 145 matches to reach that milestone – by comparison, Kylian Mbappe took 180 matches to rack up triple figures, Lionel Messi 210 games and Cristiano Ronaldo 301.
His second-minute opener took a slight nick off Boateng but was always heading for Manuel Neuer’s bottom corner and he ended a classy move by sweeping home Hazard’s pass for Dortmund’s second.
However, Lewandowski was not to be overshadowed, his hat-trick taking his Bundesliga total to 267 goals, one behind second-placed Klaus Fischer on the league’s all-time scoring charts.
The Poland striker could have had more against his former club, snatching at a volley that he sent wide before converting Sane’s centre from close range and beating Marwin Hitz from the spot.
Dortmund looked set to see out a cagier second half but Goretzka and Lewandowski both found the bottom corner with accurate finishes in the closing stages to continue Bayern’s hold over Dortmund – they have won the past seven meetings between the sides at the Allianz Arena by an aggregate of 30-5.
- 17BoatengSubstituted forMartínez Aguinagaat 70′minutes
- 10SanéSubstituted forHernándezat 90+1′minutes
- 25MüllerSubstituted forChoupo-Motingat 90+1′minutes
- 29ComanSubstituted forGnabryat 66′minutes
- 9LewandowskiBooked at 28mins
- 8Martínez Aguinaga
- 28Oliveira Dantas
- 5ZagadouSubstituted forMoreyat 70′minutes
- 24MeunierBooked at 29mins
- 6DelaneySubstituted forBellinghamat 70′minutes
- 11ReusSubstituted forCarvalhoat 76′minutes
- 10T HazardSubstituted forBrandtat 60′minutes
- 9HaalandSubstituted forTiggesat 60′minutes
Match ends, FC Bayern München 4, Borussia Dortmund 2.
Second Half ends, FC Bayern München 4, Borussia Dortmund 2.
Eric Maxim Choupo-Moting (FC Bayern München) wins a free kick on the right wing.
Foul by Jude Bellingham (Borussia Dortmund).
Attempt saved. Niklas Süle (FC Bayern München) right footed shot from outside the box is saved in the centre of the goal. Assisted by Leon Goretzka.
Substitution, FC Bayern München. Lucas Hernández replaces Leroy Sané.
Substitution, FC Bayern München. Eric Maxim Choupo-Moting replaces Thomas Müller.
Goal! FC Bayern München 4, Borussia Dortmund 2. Robert Lewandowski (FC Bayern München) right footed shot from outside the box to the bottom left corner. Assisted by Alphonso Davies.
Goal! FC Bayern München 3, Borussia Dortmund 2. Leon Goretzka (FC Bayern München) right footed shot from the centre of the box to the bottom left corner.
Attempt saved. Steffen Tigges (Borussia Dortmund) left footed shot from more than 35 yards is saved in the centre of the goal. Assisted by Thomas Meunier.
Attempt blocked. Joshua Kimmich (FC Bayern München) right footed shot from the centre of the box is blocked. Assisted by Thomas Müller.
Corner, FC Bayern München. Conceded by Thomas Meunier.
Attempt blocked. Thomas Müller (FC Bayern München) header from the centre of the box is blocked. Assisted by Niklas Süle.
Attempt blocked. Leon Goretzka (FC Bayern München) right footed shot from the centre of the box is blocked. Assisted by Thomas Müller.
Javi Martínez (FC Bayern München) wins a free kick in the defensive half.
Foul by Steffen Tigges (Borussia Dortmund).
Thomas Müller (FC Bayern München) wins a free kick on the left wing.
Foul by Mahmoud Dahoud (Borussia Dortmund).
Attempt missed. Niklas Süle (FC Bayern München) header from the centre of the box misses to the left. Assisted by Joshua Kimmich with a cross following a corner.
Corner, FC Bayern München. Conceded by Julian Brandt.