Home comforts made the difference for many teams on Matchday 29 on a weekend when RB Leipzig secured at least a place in next season’s UEFA Champions League qualifying round. Hoffenheim and Borussia Dortmund moved closer to joining them, while Darmstadt beat Schalke to stave off relegation for another week.
Leaders Bayern Munich were held at Leverkusen, while at the other end Wolfsburg won a relegation six-pointer against Ingolstadt. Meanwhile, Augsburg and Mainz pulled further clear of the automatic relegation places by ending their losing streaks.
RB Leipzig 4-0 Freiburg
Newly-promoted Kaiserslautern famously won the Bundesliga title in 1997/1998, and although Leipzig are unlikely to repeat that feat, they are on course to do the next best thing after sweeping Freiburg aside 4-0. Second in the table and seven points ahead of third place, Leipzig are, at the very least, now guaranteed a top-four finish and a spot in the Champions League play-off round. And of course, no victory would be complete without an Emil Forsberg assist – his fifteenth of the season.
Watch: Leipzig's assist-king Forsberg discusses his side's win
Darmstadt 2-1 Schalke
The worst record of any team since the introduction of three points for a win; a loss tally of 21 in 28 Bundesliga games and without a victory against Schalke in eight competitive matches; surely Darmstadt had no chance, right? Wrong! Faced with the prospect of being relegated before a ball had been kicked this weekend, the Lilies not only kept a fingernail attached to their top-flight status but even inched a fingertip onto the ledge. Darmstadt goalkeeper Michael Esser emerged as man of the match against ten-man Schalke but it was the sight of Jerome Gondorf being swamped by team-mates following his injury-time winner that will live long in the collective memory of the home fans.
Bayer Leverkusen 0-0 Bayern Munich
When is a scoreless draw not a bore draw? When it takes place in the Bundesliga, of course! Bayern’s 350th sold-out league match in succession ended without goals but it was not short of drama. Both sides had their chances, although the league leaders will feel they should have won after Leverkusen defender Tin Jedvaj was sent off on 59 minutes. Bayern boss Carlo Ancelotti will be glad that top scorer Robert Lewandowski is back from suspension next week, while Leverkusen will be pleased to finally pick up a point against one of this season’s top three.
Watch: Arjen Robben was satisfied with Bayern's performance, if not the result
Borussia Dortmund 3-1 Eintracht Frankfurt
The good news in Dortmund started even before kick-off as superstar attacker Marco Reus was named in the starting line-up after several weeks out with injury - and duly scored in the third minute. The game was also memorable for two outstanding long-range goals, first from Frankfurt's Marco Fabian before Sokratis replied with almost a carbon copy just a few minutes later. Pierre-Emerick Aubameyang went joint-top of the scorers' chart late on by netting his 26th Bundesliga goal of the campaign - a new single-season personal best for the striker.
Watch: Sokratis dedicates his thunderbolt to injured team-mate Marc Bartra
Hoffenheim 5-3 Gladbach
An eight-goal thriller, you say? Yes please! The more questions that are asked of this Hoffenheim side, the more impressive the answers seem to be. Could they bounce back from defeat at Hamburg last week? Would they recover when Jannik Vestergaard and Lars Stindl swiftly cancelled out Adam Szalai’s early double? Of course they would. Kemir Demirbay’s second-half brace – either side of a stunning strike from Mark Uth – ensured Hoffenheim remain one of only three teams yet to lose at home.
Watch: Hoffenheim coach Julian Nagelsmann on a "breathtaking" match
SV Werder Bremen 2-1 Hamburger SV
Oh how they celebrated at the Weser Stadium! Werder Bremen are not just on fire, they are blazing towards an incredible finish to a campaign that once threatened relegation. A ninth game without loss – a sequence that now includes seven wins following this Nordderby, come from behind triumph – came via strikes from the colossal Max Kruse and Michael Gregoritsch. The Green-Whites have now picked up 23 points in the Rückrunde and – currently occupying eighth spot – are only two points off the European places with five to play!
Watch: Goalscorer Kruse reacts to the win and his undefeated streak against Hamburg
Wolfsburg 3-0 Ingolstadt
Three wins and eight goals. Lately, there seemed to be no stopping Ingolstadt’s rescue effort. They will have been licking their lips before playing a Wolfsburg side that had lost their previous two matches, but it was the Wolves who bared their teeth on Saturday. Dario Lezcano went close for the visitors but their luck seemed to have well and truly turned when Markus Suttner scored Ingolstadt’s first-ever own goal in the top flight. Substitute Yunus Malli got the second before Mario Gomez netted his 14th of the season late on to boost Wolfsburg's own survival hopes.
Watch: Malli discusses the win over Ingolstadt
Mainz 1-0 Hertha Berlin
Something had to give when Mainz, on a five-match losing run, hosted Hertha Berlin, who had lost seven in a row away from home. After a cagey opening, a ravenous home side realised that the visitors were there for the taking. Danny Latza forced Hertha keeper Rune Jarstein to show just how long his reach is before unfortunate visiting defender John Anthony Brooks deflected another of the midfielder’s efforts into the net. Hertha improved slightly after the break but the 05ers were full value for the win.
Augsburg 2-1 Cologne
Augsburg’s alarming slide down the table has come to a halt for now. Martin Hinteregger scored only five minutes into his return to the team and penalty expert Paul Verhaegh made it 2-0 midway through the half. Augsburg’s defenders have now scored more goals than their attackers this season and two members of the latter union – Ja-Cheol Koo and Alfred Finnbogason - got themselves sent off in the dying minutes. A Philipp Max own goal had made things interesting midway through the second half but the Billy Goats could not find an equaliser.