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.
Line-ups
Bayern Munich
Formation 4-2-3-1
- 1Neuer
- 5Pavard
- 2Upamecano
- 21Hernández
- 19Davies
- 6KimmichSubstituted forSüleat 90+3'minutes
- 8Goretzka
- 7GnabrySubstituted forMusialaat 63'minutes
- 25MüllerSubstituted forSabitzerat 82'minutes
- 11ComanSubstituted forSanéat 82'minutes
- 9LewandowskiSubstituted forChoupo-Motingat 90+3'minutes
Substitutes
- 4Süle
- 10Sané
- 13Choupo-Moting
- 18Sabitzer
- 22Roca
- 23Nianzou
- 26Ulreich
- 42Musiala
- 44Stanisic
B Dortmund
Formation 4-2-3-1
- 35Hitz
- 39WolfSubstituted forMoukokoat 87'minutes
- 16Akanji
- 5Zagadou
- 13Guerreiro
- 23CanBooked at 40mins
- 22Bellingham
- 19Brandt
- 11Reus
- 20CarvalhoSubstituted forBynoe-Gittensat 67'minutes
- 9HaalandSubstituted forPasslackat 87'minutes
Substitutes
- 14Schulz
- 18Moukoko
- 30Passlack
- 34Pongracic
- 36Rothe
- 37Semic
- 38Bürki
- 43Bynoe-Gittens
- 47Papadopoulos
- Referee:
- Daniel Siebert
- Attendance:
- 75,000
Match Stats
- Possession
- Home59%
- Away41%
- Shots
- Home14
- Away7
- Shots on Target
- Home6
- Away2
- Corners
- Home3
- Away1
- Fouls
- Home9
- Away11
Live Text
Post update
Full Time
Second Half ends, FC Bayern München 3, Borussia Dortmund 1.
Post update
Foul by Marcel Sabitzer (FC Bayern München).
Post update
Raphaël Guerreiro (Borussia Dortmund) wins a free kick in the defensive half.
Post update
Attempt missed. Leon Goretzka (FC Bayern München) right footed shot from outside the box is too high. Assisted by Alphonso Davies.
Substitution
Substitution, FC Bayern München. Eric Choupo-Moting replaces Robert Lewandowski.
Substitution
Substitution, FC Bayern München. Niklas Süle replaces Joshua Kimmich.
Post update
Jamal Musiala (FC Bayern München) wins a free kick on the left wing.
Post update
Foul by Felix Passlack (Borussia Dortmund).
Substitution
Substitution, Borussia Dortmund. Felix Passlack replaces Erling Haaland.
Substitution
Substitution, Borussia Dortmund. Youssoufa Moukoko replaces Marius Wolf.
Post update
Offside, FC Bayern München. Jamal Musiala tries a through ball, but Leon Goretzka is caught offside.
Goal!
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.
Post update
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
Substitution, FC Bayern München. Leroy Sané replaces Kingsley Coman.
Substitution
Substitution, FC Bayern München. Marcel Sabitzer replaces Thomas Müller.
Post update
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.
Post update
Corner, Borussia Dortmund. Conceded by Manuel Neuer.
Post update
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.
Post update
Corner, FC Bayern München. Conceded by Jude Bellingham.