Bayern Munich won an 11th consecutive Bundesliga title as they beat Cologne to overtake Borussia Dortmund on a thrilling final day.
Dortmund would have won their first title since 2011-12 had they beaten Mainz, but a 2-2 draw opened the door for Bayern.
They took advantage thanks to Jamal Musiala’s 89th-minute winner.
A Cologne penalty had cancelled out Kingsley Coman’s earlier strike, but Musiala sent the away fans wild.
Dortmund’s players and fans were left dejected despite coming back from 2-0 down at the break, with Sebastian Haller having a first-half penalty saved.
It looked as if Bayern had blown their opportunity when Cologne’s Dejan Ljubicic levelled from the penalty spot with just nine minutes remaining.
But Musiala curled home in the closing seconds to break the hearts of Dortmund, who equalised late on through Niklas Sule.
Bayern beat Dortmund to the title on goal difference, with both sides ending on 71 points.
It marked a successful end to the season for boss Thomas Tuchel, who replaced Julian Nagelsmann in March.
Minutes after the final whistle, Bayern announced the dismissals of chief executive officer Oliver Kahn and sporting director Hasan Salihamidzic, who won 14 titles between them as Bayern players.
“Instead of celebrating, we now have another issue” manager Thomas Tuchel said in response to the sackings.
The title-defining final day that kept swinging
Bayern Munich were bidding to become the first team to win the Bundesliga title having started the final day in second since 1999-2000, when they beat Bayer Leverkusen to the crown.
For that to happen they needed to beat Cologne and hope Dortmund failed to win at home against a Mainz team with nothing to play for.
After eight minutes, Bayern went top thanks to a strike from France winger Coman, who has won the title in every season as a professional footballer with Paris St-Germain, Juventus and Bayern.
Soon after, Andreas Hanche-Olsen gave Mainz their shock lead.
Dortmund had a glorious chance to level but Haller’s poor penalty was saved. It was his first spot-kick for the club, having missed the first half of this season as he recovered from testicular cancer.
Things got worse for the home side when Karim Onisiwo doubled Mainz’s lead one minute later.
Dortmund now needed to score three goals – or for Cologne to come back against Bayern.
Raphael Guerreiro gave them hope when he made it 2-1 and Ljubicic’s penalty leveller for Cologne meant Dortmund were nine minutes from the title.
But Musiala, Germany’s former England Under-21 midfielder, broke their hearts with an expert finish from inside the box.
The final whistle went at Cologne with Bayern doing their job and Thomas Muller, who now has won a record 12th Bundesliga titles, was seen following the other game on a phone.
He will have got a little concerned when Sule’s deflected strike made it 2-2 for Dortmund in the 96th minute.
But they could not find a winner in the remaining seconds and their dream of a first title since the days of Jurgen Klopp evaporated.
The famous ‘Yellow Wall’ stand stayed on to salute their team afterwards, with boss Edin Terzic and England midfielder Jude Bellingham, an unused substitute because of an injury, in tears.
Tuchel gets Bayern over the line
With this dramatic victory, Tuchel lands the first Bundesliga trophy of his career and gives the surprising decision to axe Nagelsmann with two months left of the season some merit.
They were in the hunt for a treble at the time and Tuchel took Bayern out of the German Cup and the Champions League after he arrived. They would have finished without a trophy for the first time since 2011-12 had Dortmund beaten Mainz.
He is the seventh different manager to win the title with Bayern in the last eight years after Pep Guardiola, Carlo Ancelotti, Jupp Heynckes, Niko Kovac, Hansi Flick – who won it twice – and Nagelsmann.
Forward Muller and injured goalkeeper Manuel Neuer, who missed the second half of the season after breaking his leg on a skiing holiday, lifted the trophy together – one they have now claimed 11 times together.
“It is an unbelievable moment – crazy, electric. I hoped it would happen but did not think it would,” said Muller.
“We conceded an equaliser just as we have done the entire season and then Musiala drills in the winner.
“People interested in football have the feeling that we do not deserve this and I understand that because of the second half of the season being so chaotic for us.”
Musiala could be on his way to the kind of title numbers Muller has racked up too, having played in four championship campaigns already at the age of 20.
He also scored in the game that sealed Bayern the title last season – a 3-1 win over Dortmund.
Line-ups
Köln
Formation 4-2-3-1
- 20Schwäbe
- 2SchmitzBooked at 24minsSubstituted forHuseinbasicat 62′minutes
- 4Hübers
- 24Chabot
- 14Hector
- 6Martel
- 28Skhiri
- 7LjubicicBooked at 81minsSubstituted forPedersenat 82′minutes
- 11KainzSubstituted forSchindlerat 62′minutes
- 37MainaSubstituted forLemperleat 82′minutes
- 27SelkeSubstituted forThielmannat 62′minutesBooked at 90mins
Substitutes
- 1Horn
- 3Pedersen
- 8Huseinbasic
- 15Kilian
- 17Schindler
- 19Limnios
- 25Lemperle
- 29Thielmann
- 47Olesen
Bayern Munich
Formation 4-2-3-1
- 27Sommer
- 5Pavard
- 2Upamecano
- 4de Ligt
- 40MazraouiSubstituted forMusialaat 85′minutes
- 6Kimmich
- 38GravenberchSubstituted forGoretzkaat 71′minutesSubstituted forTelat 85′minutes
- 10Sané
- 25MüllerSubstituted forCanceloat 62′minutes
- 11ComanSubstituted forChoupo-Motingat 71′minutes
- 7Gnabry
Substitutes
- 8Goretzka
- 13Choupo-Moting
- 17Mané
- 22Cancelo
- 23Blind
- 26Ulreich
- 39Tel
- 42Musiala
- 44Stanisic
- Referee:
- Sven Jablonski
- Attendance:
- 50,000
Live Text
-
Match ends, 1. FC Köln 1, FC Bayern München 2.
-
Second Half ends, 1. FC Köln 1, FC Bayern München 2.
-
Mathys Tel (FC Bayern München) wins a free kick in the defensive half.
-
Foul by Kristian Pedersen (1. FC Köln).
-
Offside, FC Bayern München. Joshua Kimmich tries a through ball, but Mathys Tel is caught offside.
-
Jan Thielmann (1. FC Köln) is shown the yellow card for a bad foul.
-
Leroy Sané (FC Bayern München) wins a free kick on the right wing.
-
Foul by Jan Thielmann (1. FC Köln).
-
Goal! 1. FC Köln 1, FC Bayern München 2. Jamal Musiala (FC Bayern München) right footed shot from outside the box to the bottom right corner. Assisted by Serge Gnabry.
-
Attempt saved. Leroy Sané (FC Bayern München) left footed shot from the centre of the box is saved in the bottom right corner. Assisted by Mathys Tel.
-
Dayot Upamecano (FC Bayern München) wins a free kick in the defensive half.
-
Foul by Tim Lemperle (1. FC Köln).
-
Foul by Mathys Tel (FC Bayern München).
-
Timo Hübers (1. FC Köln) wins a free kick in the defensive half.
-
Substitution, FC Bayern München. Jamal Musiala replaces Noussair Mazraoui.
-
Substitution, FC Bayern München. Mathys Tel replaces Leon Goretzka.
-
João Cancelo (FC Bayern München) wins a free kick in the defensive half.
-
Foul by Denis Huseinbasic (1. FC Köln).
-
Benjamin Pavard (FC Bayern München) wins a free kick in the defensive half.
-
Foul by Jan Thielmann (1. FC Köln).