Borussia Dortmund sealed their Champions League ticket on the final day with a 3-0 victory over already-relegated Holstein Kiel – capping a six-win surge in seven matches that rocketed them from 11th to fourth under new boss Niko Kovac.
Seven weeks ago, Dortmund were sinking.
But Kovac, who stepped in after Nuri Şahin’s exit in February, sparked a late-season revival that culminated in a top-four finish and a spot among Europe’s elite.
Serhou Guirassy opened the scoring from the spot in the third minute, becoming the first Dortmund player to net 21 goals in his debut season.
Kiel’s Carl Johansson saw red just six minutes later for a last-man foul, and though Dortmund didn’t immediately capitalize, the floodgates opened after the break.
Marcel Sabitzer doubled the lead with a deflected strike in the 47th, and Felix Nmecha sealed it in the 72nd, confirming Dortmund’s return to the big stage.
They’ll be joined by Eintracht Frankfurt, who came from behind to beat Freiburg 3-1 away – a result that denied the hosts their dream of a first-ever Champions League berth.
Ritsu Doan’s first-half volley had Freiburg fans dreaming, but Ansgar Knauff equalized just before the break.
Frankfurt then buried those hopes with a quick-fire double from Rasmus Kristensen and Ellyes Skhiri midway through the second half.
Freiburg slipped to fifth and will compete in next season’s Europa League.
Mainz also had reason to celebrate, clinching the final European spot – a Conference League berth – after a 2-2 home draw with Bayer Leverkusen.
Jonathan Burkardt’s late penalty leveled the match after Patrick Schick’s brace briefly gave Leverkusen the lead. Mainz stayed sixth, a point clear of RB Leipzig, who collapsed 3-2 at home to Stuttgart and missed out on European football for the first time since their 2016 promotion.
Elsewhere, Bayern Munich closed out their title-winning season in style with a 4-0 drubbing of Hoffenheim in Thomas Muller’s 503rd and final Bundesliga appearance.
Harry Kane struck his 26th of the season to secure back-to-back top scorer honors, while Michael Olise, Joshua Kimmich and Serge Gnabry also found the net.
Meanwhile, Xabi Alonso’s reign at Leverkusen ended with a league-record 34th consecutive away game unbeaten – despite settling for second after their 2-2 draw at Mainz.
Relegation drama also reached a boiling point. With Bochum and Kiel already down, Heidenheim fell into the 16th-place playoff spot following a 4-1 loss to Werder Bremen.
Union Berlin staged a comeback to beat Augsburg 2-1 thanks to a brace from Andrej Ilić, while Wolfsburg edged Borussia Monchengladbach 1-0.