It was in Borussia Dortmund’s hands. It should have been Borussia Dortmund’s title. All they had to do was beat Mainz.
They couldn’t do it.
Bayern Munich have won an 11th-successive Bundesliga title, beating BVB to the championship on goal difference after their 2-2 draw on home soil at Signal-Iduna Park.
Thomas Tuchel’s side came from behind to beat Koln 2-1 to wrestle their way to another title.
Here’s how the destination of the Meisterschale changed on a frantic final day.
Note: All times are BST
14:30 – Borussia Dortmund top of the table
Bayern moved to the top of the table for the first time on the day with only eight minutes on the clock when Kingsley Coman fired them in front.
14:38 – Bayern Munich top of the table
The Bavarians’ afternoon got better when minutes later, Dortmund fell behind to a header from Mainz’s Andreas Hanche-Olsen.
Almost immediately from the resulting kick-off, Raphael Guerreiro fell under a challenge from Dominik Kohr, and after a VAR check, Dortmund were awarded a penalty.
Sebastien Haller stepped up, but his low effort was beaten away by Dahmen.
Dortmund’s miserable day went from bad to worse when they went 2-0 down, with Karim Onisiwo’s header too strong for Gregor Kobel to handle.
Just before half-time, Leroy Sane thought he had fired Bayern into a two-goal lead at Koln, only for a VAR check to chalk it off for a handball in the build-up.
Dortmund continued to look vulnerable in transition after the break as Onisiwo struck the post, before Haller was inches away from converting a deep cross from Donyell Malen at the other end.
Back in Koln, Yann Sommer had to be at his best to deny Davie Selke and preserve Bayern’s advantage.
After throwing pretty much the kitchen sink at Mainz, Dortmund got on the scoresheet with just under 20 minutes to go through Guerreiro, whose right-footed strike went in via the post.
To Dortmund’s rescue came Serge Gnabry, who was penalised for a handball and Koln were awarded a penalty against Bayern. Dejan Ljubicic levelled from the spot and BVB went back to the top of the table with ten minutes to go.
16:11 – Borussia Dortmund top of the table
But Jamal Musiala came off the bench to save Bayern, curling in an 89th-minute strike from the edge of the box to claw back the title.
16:19 – Bayern Munich top of the table
Deep into five minutes of stoppage time in Dortmund, Niklas Sule fired in a much-needed equaliser.
Every player was thrown forward for one final opportunity, but it was too late.
Borussia Dortmund 2-2 Mainz. Koln 1-2 Bayern Munich.
A different story, but the same ending.