A surprise victory for 1. FSV Mainz 05 over Borussia Dortmund secured their Bundesliga status on a day when all 18 teams were in action simultaneously, but three teams remain in fear of the drop going into the final weekend.

Hamburger SV’s 3-0 defeat against Eintracht Frankfurt condemns them to a bottom three finish, but they can still overtake VfL Wolfsburg, who lost to RB Leipzig.

SC Freiburg also lost, against Borussia Mönchengladbach, to leave them in danger of finishing in the relegation play-off spot, whilst further up the table Schalke 04 confirmed second place and a UEFA Champions League spot for next season.

Baku helps to save Mainz as relegation rivals all lose

All of the goals in Dortmund came in the first 16 minutes. Mainz, still only three points above the bottom three at the start of the day, swept into a 2-0 lead through Ridle Baku and Yoshinori Muto. Baku, 20-years-old, was following up his debut goal from the win against RB Leipzig last weekend.

Maximilian Philipp pulled one back for the hosts in their final home game of the season, but there were no more goals as Mainz hung on to ensure another season in the Bundesliga. Dortmund missed the chance to guarantee a Champions League place, but with three points between them and Bayer Leverkusen (who drew 0-0 with Werder Bremen) plus a superior goal difference, they will confirm it next week if they avoid a calamity.

As for Hamburg, they survival hopes are hanging by a thread after losing to Frankfurt through goals from Marius Wolf, Omar Mascarell and Alexander Meier. Wolfsburg meanwhile were beaten by Leipzig, for whom Ademola Lookman scored twice, whilst Freiburg were beaten 3-1 by Gladbach.

Hamburg will now have to beat Gladbach on the final day and hope Wolfsburg, who have a much better goal difference, are beaten by already-relegated 1. FC Köln just to salvage a play-off against the third-placed 2. Bundesliga team. Wolfsburg can still avoid that fate entirely though if they won and Freiburg lose to FC Augsburg.

Schalke reach the Champions League but Hoffenheim stumble

Schalke became the second team to book Champions League football, for the first time in three years, with a 2-1 win at Augsburg. Thilo Kehrer was the unlikely scorer of both goals for die Königsblauen, both in the first half, with a Philipp Max goal for the hosts sandwiched in between. And due to Dortmund’s defeat, they are also guaranteed to finish second, a superb achievement for Domenico Tedesco and his side.

TSG 1899 Hoffenheim, Leverkusen and Leipzig will battle it out for the final spot, although the former two could still catch Dortmund on points. Hoffenheim’s chances were damaged by a 2-0 defeat to VfB Stuttgart, despite playing the last 25 minutes with ten men, with Mario Gómez scoring both goals. They play Dortmund next week.

Leverkusen’s draw pulled them level on points with Hoffenheim, whilst Leipzig’s win against Wolfsburg leaves them two points further back. Leverkusen host Hannover 96 on the final day, where they could need to a big win due to the goal difference factor, whilst Leipzig play Hertha BSC in Berlin. Frankfurt can’t realistically reach the top four now, whilst Stuttgart and Gladbach retain hopes of snatching a UEFA Europa League place.

Elsewhere, champions Bayern Munich came from behind to record a 27th victory of the season against Köln, whilst Hannover made absolutely sure of their Bundesliga status with a 3-1 victory against Hertha.