Match ends, FC Bayern München 3, Borussia Dortmund 1.
Bayern Munich secured a 10th consecutive Bundesliga title by easing to victory over second-placed Borussia Dortmund in Der Klassiker.
Julian Nagelsmann's side have once again dominated domestic rivals this season and this win opened a 12-point lead at the top with three games left.
Serge Gnabry's sublime touch and volley opened the scoring before Robert Lewandowski coolly added a second.
Emre Can's penalty cut the lead but Jamal Musiala added a third late on.
The 19-year-old slammed home from close range to send the Allianz Arena into celebration as Bayern delivered a 32nd league title.
It comes at a time where Nagelsmann has said he has been subjected to online death threats after his team's surprise Champions League exit to Villarreal.
Whilst they have been unable to replicate the success they enjoyed in winning Europe's elite club competition in 2019-20, domestically Bayern remain untouchable.
Forward Thomas Muller, who became the first player to win 11 Bundesliga titles, said: "It was an opportunity to set the record straight. There has been a lot of frustration recently and it was an opportunity to let off steam. Now everything is wonderful.
"We really wanted to win it here. There was a lot of frustration in the past days and we could play it off today.
"This is not boring. This is outstanding. The more you win the greedier you get every year."
This victory took their unbeaten run to nine matches and with just four defeats in the league this season, no-one has been able to keep pace.
Lewandowski has been instrumental in hitting 33 goals, having found the net 41 times last season - a Bundesliga record.
"It's huge to be part of the team that wins a tenth title in a row," said Lewandowski, 33. "The mood at home hasn't been good for the past two weeks, so this title will help us recover on track."
Lewandowski's future remains uncertain with his contract set to expire in 2023, and Dortmund could also be set for significant change in their forward line, with Erling Haaland closing in on a move to Manchester City.
The 21-year-old has hit 18 league goals in 21 Bundesliga matches this season and his potential departure could prove key in Dortmund's hopes of reducing the gap to their rivals next season.
In all, Bayern have won their previous five Bundesliga titles by a combined 64 points and this latest success again underlines a gulf in class their challengers must somehow find a way to close.
- 6KimmichSubstituted forSüleat 90+3'minutes
- 7GnabrySubstituted forMusialaat 63'minutes
- 25MüllerSubstituted forSabitzerat 82'minutes
- 11ComanSubstituted forSanéat 82'minutes
- 9LewandowskiSubstituted forChoupo-Motingat 90+3'minutes
- 39WolfSubstituted forMoukokoat 87'minutes
- 23CanBooked at 40mins
- 20CarvalhoSubstituted forBynoe-Gittensat 67'minutes
- 9HaalandSubstituted forPasslackat 87'minutes
- Daniel Siebert
- Shots on Target
Second Half ends, FC Bayern München 3, Borussia Dortmund 1.
Foul by Marcel Sabitzer (FC Bayern München).
Raphaël Guerreiro (Borussia Dortmund) wins a free kick in the defensive half.
Attempt missed. Leon Goretzka (FC Bayern München) right footed shot from outside the box is too high. Assisted by Alphonso Davies.
Substitution, FC Bayern München. Eric Choupo-Moting replaces Robert Lewandowski.
Substitution, FC Bayern München. Niklas Süle replaces Joshua Kimmich.
Jamal Musiala (FC Bayern München) wins a free kick on the left wing.
Foul by Felix Passlack (Borussia Dortmund).
Substitution, Borussia Dortmund. Felix Passlack replaces Erling Haaland.
Substitution, Borussia Dortmund. Youssoufa Moukoko replaces Marius Wolf.
Offside, FC Bayern München. Jamal Musiala tries a through ball, but Leon Goretzka is caught offside.
Goal! FC Bayern München 3, Borussia Dortmund 1. Jamal Musiala (FC Bayern München) right footed shot from the centre of the box to the bottom left corner. Assisted by Marcel Sabitzer with a headed pass.
Attempt saved. Jamal Musiala (FC Bayern München) right footed shot from the left side of the box is saved in the bottom left corner. Assisted by Lucas Hernández.
Substitution, FC Bayern München. Leroy Sané replaces Kingsley Coman.
Substitution, FC Bayern München. Marcel Sabitzer replaces Thomas Müller.
Attempt missed. Erling Haaland (Borussia Dortmund) left footed shot from the centre of the box is high and wide to the left. Assisted by Marius Wolf with a through ball.
Corner, Borussia Dortmund. Conceded by Manuel Neuer.
Attempt blocked. Erling Haaland (Borussia Dortmund) left footed shot from the left side of the box is blocked. Assisted by Jamie Bynoe-Gittens with a through ball.
Corner, FC Bayern München. Conceded by Jude Bellingham.