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.
Tuchel gets Bayern over the line