Get all your news in one place.
100’s of premium titles.
One app.
Start reading
The Guardian - UK
The Guardian - UK
Sport
John Brewin

Bayern Munich win Bundesliga after wild final day as Dortmund held by Mainz – as it happened

Bayern Munich's Thomas Mueller celebrates with the trophy and teammates after winning the Bundesliga as coach Thomas Tuchel looks on.
Bayern Munich's Thomas Mueller celebrates with the trophy and teammates after winning the Bundesliga as coach Thomas Tuchel looks on. Photograph: Thilo Schmülgen/Reuters

Jonathan Lïew was there to see Dortmund blow the title.

As the full-time whistle blew on a breezy early-summer afternoon, a strange and unfamiliar noise gripped the huge Westfalenstadion: the sound of nothing at all. A silence, an emptiness, a void, an unrequited longing. Eleven years without a title will become 12, and now how many more? There were bitter tears and there will be even bitterer memories: the photographic negatives of a day on which Dortmund came, and saw, and did not conquer.

Bundesliga final table

Union steal ahead of Freiburg into fourth, Schalke go down, Stuttgart face a relegation playoff to avoid the 2.Bundesliga. Freiburg go into the Europa, Leverkusen into the Conference.

Pos Team P GD Pts
1 Bayern Munich 34 54 71
2 Borussia Dortmund 34 39 71
3 RB Leipzig 34 23 66
4 Union Berlin 34 13 62
5 Freiburg 34 7 59
6 Bayer Leverkusen 34 8 50
7 Eintracht Frankfurt 34 6 50
8 Wolfsburg 34 9 49
9 Mainz 34 -1 46
10 Borussia M'gladbach 34 -3 43
11 Cologne 34 -5 42
12 Hoffenheim 34 -9 36
13 Werder Bremen 34 -13 36
14 VfL Bochum 34 -32 35
15 Augsburg 34 -21 34
16 Stuttgart 34 -12 33
17 Schalke 04 34 -36 31
18 Hertha Berlin 34 -27 29

Bundesliga final day scores

Bochum 3-0 Leverkusen, Dortmund 2-2 Mainz, Union Berlin 1-0 Werder, Koln 1-2 Bayern, Wolfsburg 1-2 Hertha, Leipzig 4-2 Schalke, Eintracht Frankfurt 2-1 Freiburg, Monchengladbach 2-0 Augsburg, Stuttgart 1-1 Hoffenheim

Admir Pajic reminds that: “Kingsley Coman will keep his perfect professional record of winning the league title in every single season since his debut. Thomas Tuchel won’t have two incredible underachievements in the same season - failing to beat Spurs 2022-23 with Chelsea and failing to win the league with Bayern.”

Poor Dortmund, playing for the title until the last seconds, with Mainz having to clear their lines. Heartbreak for them. Relief and joy for Bayern. That was a title race and a half but the crown goes to the usual place.

Dortmund’s players lay on the pitch after the German Bundesliga soccer match between Borussia Dortmund and Mainz.
Dejection on the pitch and in the stands. Photograph: Michael Probst/AP
Borussia Dortmund coach Edin Terzic and Mats Hummels look dejected after the match.
Borussia Dortmund coach Edin Terzic consoles Mats Hummels. Photograph: Leon Kuegeler/Reuters
Dortmund's Marco Reus looks dejected after the German first division Bundesliga football match between Borussia Dortmund and Mainz.
Marco Reus looks crestfallen. Photograph: Ina Fassbender/AFP/Getty Images

Updated

Bayern Munich are champions again!

Dortmund’s hopes of that first title since 2012 are extinguished in their own home by Mainz. Bayern held their nerve and Jamal Musiala’s goal will enter lore like that of Patrik Andersson 22 years ago. Bayern celebrate while Dortmund are still playing…they had the ball in the net in injury-time but Haller was offside. And then, Sule scores…and that will be the last of it….Bayern players celebrate as if it is won and Dortmund are *still playing*…2-2 it was, and that’s that.

Joshua Kimmich and Serge Gnabry of Bayern Munich celebrate winning the Bundesliga title.
Joshua Kimmich and Serge Gnabry of Bayern Munich celebrate winning the Bundesliga title. Photograph: Alexander Hassenstein/Getty Images

Updated

Köln 1-2 Bayern: Pavard now playing for time. Momentum shifts all over the place. It was just moments ago that Bayern were playing hurryup.

Dortmund 1-2 Mainz: Can Dortmund find anything? Do they think two goals are beyond them? Mainz may be the likelier scorers here. Five minutes and two goals is the tallest of orders.

As it stands. Dortmund were champions for mere minutes. They need two goals.

Pos Team P GD Pts
1 Bayern Munich 34 54 71
2 Borussia Dortmund 34 38 70
3 RB Leipzig 34 22 66
4 Union Berlin 34 13 62
5 Freiburg 34 8 60
6 Bayer Leverkusen 34 8 50
7 Wolfsburg 34 9 49
8 Eintracht Frankfurt 34 5 48
9 Mainz 34 0 48
10 Borussia M'gladbach 34 -3 43
11 Cologne 34 -5 42
12 Hoffenheim 34 -9 36
13 Werder Bremen 34 -13 36
14 VfL Bochum 34 -32 35
15 Augsburg 34 -21 34
16 Stuttgart 34 -12 33
17 Schalke 04 34 -35 31
18 Hertha Berlin 34 -27 29

Goal! Köln 1-2 Bayern (Musiala, 89)

As Köln tried desperately to clear the danger the ball falls to the playmaker. His shot is like a guided missile. And as it stands, Bayern are champions!

Jamal Musiala of Bayern Munich scores the team's second goal against Cologne.
Jamal Musiala of Bayern Munich scores the team's second goal against Cologne. Photograph: Alexander Hassenstein/Getty Images

Updated

Köln 1-1 Bayern: Seconds ticking away and the body language from Bayern is not good. The blame game being prepared when the game is still afoot. What drama. Sane goes all the way through and his shot is saved….but…

Dortmund 1-2 Mainz: for the champions-elect – somehow, a Reus strike whips past the Mainz goal. It’s a Bayern goal that can change things here.

As it stands!

News of that Köln goal has reached Dortmund

Pos Team P GD Pts
1 Borussia Dortmund 34 38 70
2 Bayern Munich 34 53 69
3 RB Leipzig 34 22 66
4 Union Berlin 34 13 62
5 Freiburg 34 8 60
6 Bayer Leverkusen 34 9 50
7 Wolfsburg 34 9 49
8 Eintracht Frankfurt 34 5 48
9 Mainz 34 0 48
10 Borussia M'gladbach 34 -3 43
11 Cologne 34 -4 43
12 Hoffenheim 34 -9 36
13 Werder Bremen 34 -13 36
14 VfL Bochum 34 -33 35
15 Augsburg 34 -21 34
16 Stuttgart 34 -12 33
17 Schalke 04 34 -35 31
18 Hertha Berlin 34 -27 29

Goal! Köln 1-1 Bayern (Ljubicic, 81 pen)

Sommer is sent the wrong way and the celebrations are maniacal….Ljubicic rips off his shirt and…the title is in Dortmund’s hands….

Cologne's Dejan Ljubicic scores their first goal from the penalty spot against Bayern Munich.
Cologne's Dejan Ljubicic scores their first goal from the penalty spot against Bayern Munich. Photograph: Thilo Schmülgen/Reuters
Cologne’s Dejan Ljubicic celebrates after scoring their first goal from the penalty spot against Bayern Munich.
Then celebrates. Photograph: Matthias Hangst/Getty Images

Updated

Penalty to Köln!

A handball on the line of the edge of the box from Gnabry. A lengthy VAR delay….and given.

Updated

Dortmund 1-2 Mainz: Haller is now getting plenty of service but the ball won’t’ drop for him.

Köln 0-1 Bayern: Choupo-Moting, cutting in from the left, cannot keep his shot from flying wide. Bayern really need another goal.

Dortmund 1-2 Mainz: The madness in Westphalia continues, as Reus goes close. The chances piling up. Two more needed.

Köln 0-1 Bayern: Kingsley Coman has gone off. Eric Maxim Choupo-Moting has come on. And the sprinkler has gone off in high temperatures, the ref taking on some fluids.

Updated

Goal! Dortmund 1-2 Mainz (Guerreiro, 70)

There is a light and it’s yet to go out. The Portuguese player smashes in against the post.

Dortmund's Raphael Guerreiro (right) celebrates with teammates after scoring his sides first goal during the German Bundesliga soccer match between Borussia Dortmund and Mainz.
Dortmund's Raphael Guerreiro (right) celebrates with teammates after pulling a goal back. Photograph: Michael Probst/AP

Updated

Dortmund 0-2 Mainz: Duranville looks handy and his shot almost falls to Reyna. Then comes an almighty scramble with Reus at its heart. This has become a very silly game. Moukoko smashes wide now. The chances piling up.

Updated

Dortmund 0-2 Mainz: Desperation. Duranville, a debutant at 17 and 22 days, and Gio Reyna come on. Mainz almost score straight away.

Köln 0-1 Bayern: Thomas Muller has left the field and on comes Joao Cancelo, who could claim his second title of the season. He qualified for one with Manchester City.

Dortmund 0-2 Mainz: Hummels has missed a big chance from a Moukoko cross and Haller was very slow to follow up. Such chances need taking.

Köln 0-1 Bayern: Sommer is asked to make a save or two as Köln push on.

As It Stands

Bayern will be champions and other results mean Freiburg will be in the Champions League as they are winning in Frankfurt. Schalke, 2-2 at Leipzig, will be relegated while Stuttgart, 0-0 with Hoffenheim face a relegation playoff.

Pos Team P GD Pts
1 Bayern Munich 34 54 71
2 Borussia Dortmund 34 37 70
3 RB Leipzig 34 21 64
4 Freiburg 34 9 62
5 Union Berlin 34 12 60
6 Wolfsburg 34 10 50
7 Bayer Leverkusen 34 9 50
8 Mainz 34 1 48
9 Eintracht Frankfurt 34 4 47
10 Borussia M'gladbach 34 -3 43
11 Cologne 34 -5 42
12 Werder Bremen 34 -12 37
13 Hoffenheim 34 -9 36
14 VfL Bochum 34 -33 35
15 Augsburg 34 -21 34
16 Stuttgart 34 -12 33
17 Schalke 04 34 -34 32
18 Hertha Berlin 34 -28 27

Dortmund 0-2 Mainz: Jude Bellingham’s injury must be serious if Terzic is yet to throw him in. Without him, Dortmund look very short on quality.

Köln 0-2 Bayern: FC Hollywood trying to get the job done. Their nerves holding for now.

Köln 0-1 Bayern: Pavard heads away as the home team try their best to get into the game. Bayern concede a corner, Sommer hacking behind in panic.

Dortmund 0-2 Mainz: Jae-sung Lee has been so dangerous for Mainz, who a breaking away on the counter, far more dangerously than Dortmund, in truth. They have a free-kick but cleared very easily.

Mainz’s Jae-sung Lee in action with Dortmund's keeper Gregor Kobel.
Mainz’s Jae-sung Lee goes up aginst Dortmund's keeper Gregor Kobel. Photograph: Wolfgang Rattay/Reuters

Updated

Köln 0-1 Bayern: Back underway in Cologne.

Dortmund 0-2 Mainz: Big half-time substitution, off goes Wolf, who looked hurt, on comes Moukoko, the teenager. And yet Mainz almost score again…Lee was on the end of a cross, to which they remain so vulnerable.

Optimism reigns and Dortmund players enter the field to loud applause.

JR in Illinois is in touch, too: “John, I keep hearing how VAR works better in European leagues but what I’ve just seen at Dortmund certainly disproves that premise. Just after Haller botched his penalty kick some dude on Mainz, as you noted, plowed right through Guerreiro’s back. In what non-corrupt world was that not a penalty? And I don’t support any of the teams involved. I’m just some neutral jerk sitting here wondering what in the wide world of sports is going on with a non-call like that.”

It was nailed on, wasn’t it?

Justin Kavanagh gets in touch: “So is there a German word for the pleasure derived by one set of fans’ from another team’s set of fans not being able to enjoy the original fans’ misfortune when it doesn’t materialize as expected? A kind of reverse schadenfreude? I’m sure there’ll be a German along any minute to inform us…”

Dortmund must wish their final day had been anything like as easy.

Half-time: Dortmund 0-2 Mainz

Hummels pummels a shot from distance, and a first half Dortmund will wish to forget, and need to recover from comes to an end.

Half-time: Köln 0-1 Bayern

Bayern are on course but may rue that VAR decision at the end of the half. Dortmund have been their saviours.

Sané goal for Bayern is ruled out! Still Köln 0-1 Bayern

Sane begins and finishes the move, getting on the end of a Gnabry ball, opening up the angle and slotting in. Bayern are seeing off their part of the job. The pressure on Dortmund unbearable…but what’s this….did Sané use his arm to control the ball.

Dortmund 0-2 Mainz: Cometh the half-hour, cometh Marco Reus. The risk taken on Adeyemi did not pay off. Meanwhile, Marius Wolf has a limp after coming down heavily. Reus is asked to save the day.

Köln 0-1 Bayern: Bayern looking cool in possession of both the ball and very probably the title.

Dortmund 0-2 Mainz: Brandt steers the ball in, Haller cannot get to it. At least Mainz are sat deep. But then from a corner, defended horribly, Lee screams away and there is panic, the ball only just cleared.

Dortmund 0-2 Mainz: Guerreiro tries a long shot, Sule’s cross is cleared. Edin Terzić looks aghast at what his team is doing to him and their fans.

Dortmund 0-2 Mainz: At least Dortmund are keeping the ball a bit better, with Malen their main attacking weapon. It’s been half an hour of horror for them today.

Köln 0-1 Bayern: Job done? Thomas Tuchel doesn’t think so, and is going absolutely mental on the sidelines. He has not looked at all trusting of his new club since taking over from Nagelsmann.

Dortmund 0-2 Mainz: BVB look for a way back but look hurried, distracted, gone at the game.

Köln 0-1 Bayern: Can Bayern blow it from here? That feels like Dortmund’s only hope. They’ve been atrocious in defence. Köln, at least, haven’t given up.

Goal! Dortmund 0-2 Mainz (Onisiwo, 24)

This is brutal. Mainz find space down the sidelines and Onisiwo is unmarked, and Kobel’s goalkeeping is poor, too. Good lord.

Mainz’s Karim Onisiwo scores their second goal against Borussia Dortmund.
Mainz’s Karim Onisiwo doubles the visitors’ lead. Photograph: Leon Kuegeler/Reuters
Mainz's Karim Onisiwo celebrates scoring their second goal against Borussia Dortmund.
Then celebrates. Photograph: Leon Kuegeler/Reuters

Updated

Köln 0-1 Bayern: The game is just a quarter way in and it’s already unspeakable drama. Tempers are fraying..

Mainz 1-0 Dortmund: Incredible scenes. Matthias Sammer raging in the stands, there was a long delay for the VAR awarding that. They want another too, when Guerreiro again goes down. It looked a foul and Dortmund entitled to be angry. No check given.

Dortmund miss a penalty!

Dortmund want a penalty for what looks a foul on Guerreiro, and up steps Haller. He taps at it, and it’s easily saved by Dahmen.

Dortmund’s Sebastien Haller reacts after failing to score a penalty kick against Mainz.
Dortmund’s Sebastien Haller reacts failing to ripple the net with his penalty. Photograph: Michael Probst/AP

Updated

Köln 0-1 Bayern: The Bayern fans know the score in Mainz and fancy doubling their lead, Muller is denied by the woodwork as they ratchet up the pressure.

Goal! Mainz 1-0 Dortmund (Hanche-Olsen, 15)

Oh no, the dream is coming apart already. It comes from a set piece, a corner, and Hanche-Olsen nods in at the near post.

Borussia Dortmund’s Sebastien Haller and teammates look dejected after Mainz’s Andreas Hanche-Olsen opened the scoring.
Borussia Dortmund’s Sebastien Haller and teammates look dejected after Mainz’s Andreas Hanche-Olsen opened the scoring. Photograph: Leon Kuegeler/Reuters

Updated

Dortmund 0-0 Mainz: Mainz’s Kohr is booked for smashing into Adeyemi.

Köln 0-1 Bayern: The local fans rather quietened by that breakthrough, though as it’s late-season and the beer is flowing. Bayern meanwhile look a little vulnerable to set pieces, and a throw-in has them scrabbling.

Dortmund 0-0 Mainz: News breaking 74km away of that Coman goal, and Bayern lead the league on goal difference. Don’t panic, Dortmund.

Goal! Köln 0-1 Bayern (Coman, 8)

A trademark goal from Coman, cutting in from the left, drilling in with his right. Pressure now on Dortmund.

Kingsley Coman slots home put Bayern Munich ahead against Cologne.
Kingsley Coman slots home put Bayern Munich ahead against Cologne. Photograph: Matthias Hangst/Getty Images
Kingsley Coman of Bayern Munich celebrates after opening the scoring at Cologne.
Then celebrates. Photograph: Matthias Hangst/Getty Images

Updated

Dortmund 0-0 Mainz: Mainz pushing on in their small, perfectly formed stadium but the ball breaks for Malen, before the move slows down. Haller’s shot is deflected.

Dortmund 0-0 Mainz: Brandt chases the ball down the channels, and the first shot of the match comes from Malen, the Dutchman, dragging his shot wide.

Köln 0-0 Bayern: Tuchel is up off the sidelines and not looking too happy with his team. he was hugely annoyed after last week’s defeat to Leipzog.

2 min: All Bayern can do is go for it, Dortmund begin with so much noise behind them.

And away they go....

kicking off in both Köln and Dortmund, the latter a minute or so slower.

The sound of driving, Euro heavy rock means we are soon to be in business, 90 minutes from pain and glory.

And both stadiums are full of noise, as they are across Germany as the teams take to the field. It sounds electric in both Dortmund and Köln.

Here come the buses.

Tough old world, being a Bayern fan…

Headline news there: Jude Bellingham is on the bench for Borussia Dortmund as he is carrying a knee injury.

Here’s the Dortmund team v Mainz

Dortmund: Kobel, Wolf, Sule, Hummels, Ryerson, Brandt, Can, Guerreiro, Malen, Haller, Adeyemi. Subs: Meyer, Schlotterbeck, Ozcan, Reyna, Reus, Bellingham, Duranville, Moukoko, Modeste

Mainz: Dahmen; Hanche-Olsen, Bell, Fernandes; Caci, Barreiro, Kohr, Martin; Stach, Lee; Onisiwo. Subs: Rieß, Laux, Barkok, Gruda, Ingvartsen, Mustapha, Burgzorg, Weiper

And the Bayern team against Köln.

Bayern: Sommer; Pavard, Upamecano, de Ligt, Mazraoui; Kimmich, Gravenberch; Sane, Muller, Coman; Gnabry. Subs: Ulreich, Goretzka, Choupo-Moting, Mane, Musiala, Cancelo, Tel, Stanisic

Köln: Dahmen; Hanche-Olsen, Bell, Fernandes; Caci, Barreiro, Kohr, Martin; Stach, Lee; Onisiwo Subs: Rieß, Laux, Barkok, Gruda, Ingvartsen, Mustapha, Burgzorg, Weiper

Updated

If Bayern pull this off, there is still much work to do, as Andy Brassell wrote earlier this week.

The talent is there for Bayern as ever, but the lack of leadership is striking. After David Alaba, Robert Lewandowski, Thiago and company (and with Arjen Robben and Franck Ribéry watching on, casting a shadow of the strength of will of Bayern past), the brand known for their winning DNA just didn’t have the personality to react here. Again. “The [Joshua] Kimmich, [Leon] Goretzka, [Leroy] Sané and Gnabry generation stands for sporting mediocrity in the national team, and they won’t make Bayern advance,” chided Kicker’s Frank Linkesch in an editorial.

When the club’s supervisory board meet on 30 May there will be a bill to pay, and the only question is who will be emptying their pockets. Oliver Kahn is under the greatest pressure though it cannot be ruled out that he and the sporting director Hasan Salihamidźić will split the burden. Continuity is generally a good thing, and has been one of Bayern’s greatest strengths not just in the last 11 years, but going back to the 1990s, when Uli Hoeness and Karl-Heinz Rummenigge began to work in tandem. That principle assumes, though, that there’s something worth hanging on to.

Jonathan mentions the title race of 2000 but 2001 was perhaps even closer. The official website tells much of the story here.

When the Barbarez goal went in, the television commentator at the Hamburg-Bayern game dramatically announced, “The German Champions for the year 2001 are called... Schalke 04!” The Bayern bench were shell-shocked. The ghosts of the 1999 Champions League final defeat to Manchester United FC suddenly seemed to have surfaced, as the Bavarians watched the Bundesliga title slip through their fingers.

Instead it was Patrik Andersson who ensured himself a place in Bayern legend. Stefan Effenberg touched the ball forward, and the Swedish defender drilled it low past the wall, past the goalkeeper and into the back of the net. It was the only goal he would ever score for the club.

Legend has it that Effenberg said to Andersson: “put it in and we can go home.” Andersson himself:

“I’d gone forward, like everyone else. Then Effe came and said: ‘Patrik, you’re shooting!’” The question was just: where? The ball was half to the left side of the penalty area, nine or ten metres from goal, with a crowd of 11 Hamburg players (and five Bayern) in between. “You have a thousand thoughts in your head,” continues Andersson. He realised that as soon as Effenberg tapped the ball for him, Schober and Stig Tøfting would charge at him from the right. “When I shoot, they’re almost going to be where I am. The far corner was therefore closed off. The only option was to hit the ball as hard as possible, keep it low and hope that somehow it goes in.”

Relive the drama from 2001 here.

Updated

Jonathan Lïew is our man in Dortmund today, and will be writing the match report. He sets the scene here.

The deed is almost done. Victory at home against ninth-placed Mainz on Saturday afternoon would bring the curtain down on Bayern Munich’s decade of dominance. Victory against Mainz would bring the Bundesliga shield back to North Rhine-Westphalia for the first time since 2012, when Jürgen Klopp was young and Robert Lewandowski was up front and every kid with a copy of Fifa wanted to play as Borussia Dortmund.

Bayern, two points behind but with a vastly superior goal difference, must go to Köln, win and hope. Nothing but a win will be good enough for Bayern; in which case nothing but a win will be good enough for Dortmund. And in Bavaria they retain strong memories of the great escape of 2000, when they began the final day three points behind but sneaked in after Bayer Leverkusen lost at Unterhaching.

Preamble

“It’s Dortmund’s title to lose,” said the excellent Derek Rae, the Bundesliga world feed commentator when Bayern lost to RB Leipzig. And that’s the problem. It has not been a title race where the holding of nerve can be guaranteed. Beat Mainz and it’s done, a first title since 2012, whatever happens when Bayern play at Köln. Last Sunday’s 3-0 win over Augsburg showed a steady hand, now can it be repeated? Slip up and it’s Bayern’s 12th successive title though Bayern have become wobblers, too.

There’s a lot to play for elsewhere. One of Union Berlin or Freiburg will join RB Leipzig in the Champions League for the first time. Union hold a slight advantage on goal difference and can all but secure a top-four spot by beating Werder Bremen. Freiburg travel to Eintracht Frankfurt who have only a distant chance of returning to European football next season. They need both Wolfsburg and Bayer Leverkusen to lose, both of them.

One of four clubs – Schalke, Bochum, Stuttgart and Augsburg – could join Hertha Berlin down in the 2.Bundesliga. Schalke travel to Leipzig, while Bochum host Leverkusen and Augsburg visit Borussia Mönchengladbach. The third-last side escapes the automatic must play a two-legged relegation playoff against the third-best side in the 2.Bundesliga.

So, all to play for. Kick-off is at 3.30pm local time, 2.30pm in the UK.

Updated

Sign up to read this article
Read news from 100’s of titles, curated specifically for you.
Already a member? Sign in here
Related Stories
Top stories on inkl right now
One subscription that gives you access to news from hundreds of sites
Already a member? Sign in here
Our Picks
Fourteen days free
Download the app
One app. One membership.
100+ trusted global sources.