Leipzig confirmed their place in next season's Champions League, while Wolfsburg picked up a huge win in their quest for Bundesliga survival. But Darmstadt's two-season stay in the top-flight is over.
Hertha Berlin 1-4 Leipzig
(Khedira og 85' - Werner 11', 54', Selke 89', 90')
Timo Werner and Davie Selke struck twice as Leipzig qualified for the Champions League and tightened their grip on second place with victory at the Olympic Stadium.
Werner gave the visitors the lead with a bullet header in the first half.
The Germany international doubled Leipzig's lead in the second half, slotting in from Poulsen's pass after a botched clearance by Rune Jarstein, his second howler in as many games for Hertha.
The hosts pulled one back through a Rani Khedira own goal, but substitute Davie Selke's late double ensured a handsome scoreline for Ralph Hasenhüttl's side.
Leipzig need only a point from their remaining two Bundesliga games - home to Bayern next week and then away to Eintracht Frankfurt - to be guaranteed second place in their debut season.
Borussia Dortmund 2–1 Hoffenheim
(Reus 4', Aubameyang 82' – Kramaric 86' pen)
Borussia Dortmund are in pole position to secure automatic qualification for the Champions League after a controversial 2-1 win over fourth-placed Hoffenheim.
Dortmund opened the scoring inside four minutes through Marco Reus, although it should have been disallowed. Reus was at least a meter offside when he received the ball from Gonzalo Castro – but Hoffenheim’s protests were ignored.
In a lively opening, Pierre-Emerick Aubameyang then missed a penalty; but it was a penalty they should never have been given. A clear Reus handball was not penalized two seconds before a Pavel Kaderabek handball in the box was – but justice was done as Aubameyang fired wide.
Aubameyang had to wait until the final ten minutes until he was able to atone, but he nodded in from close range on the rebound to secure the points for Dortmund, who have almost certainly made third place their own.
Wagner earned Hoffenheim a penalty when he was wrestled to the ground by Ginter, and Kramaric sent Bürki the wrong way from 11 meters, but it ultimately proved only a consolation.
Hoffenheim are now almost certain to finish fourth and go into a Champions League qualifier.
Bayern Munich 1–0 Darmstadt
Bayern Munich survived a late penalty scare to beat Darmstadt, who are relegated.
Champions Bayern took the lead when Franck Ribery and Juan Bernat combined down the left, with Bernat skipping past a challenge and slotting home.
Bernat went from hero to villain when he dragged back Darmstadt substitute Sven Schipplock to concede a late penalty, but Hamit Altintop’s poor spot-kick was saved to his left by Tom Starke.
The result means Darmstadt can no longer climb out of the drop zone.
Eintracht Frankfurt 0–2 Wolfsburg
(Didavi 48', Gomez 63')
Mario Gomez scored his 15th goal of the season as Wolfsburg picked up a huge three points at German Cup finalists Frankfurt.
After a unremarkable first half, Wolfsburg took the lead soon after the break through Daniel Didavi, who tucked the ball under Lukas Hradecky after a neat one-two.
Mario Gomez doubled Wolfsburg’s advantage and made the win safe with an easy finish for the second, after good work by Paul-Georges Ntep.
Frankfurt, who were third just before the winter break, now have only one league win from their last 13 Bundesliga games.
Ingolstadt 1–1 Bayer Leverkusen
(Kittle 73’ – Havertz 78’)
Ingolstadt were held to a draw by fellow strugglers Bayer Leverkusen, keeping Ingolstadt mired in relegation woe.
The hosts took the lead courtesy of a well improvised effort by Sonny Kittel, whose neat turn on the edge of the box was finished with a fine volley past Bernd Leno.
But Leverkusen, who still have only one win since Tayfun Korkut took over from Roger Schmidt, grabbed an equalizer through Kai Havertz. The 17-year-old’s far post header may prove vital in Leverkusen’s fight against the drop, but is a dent in Ingolstadt’s survival hopes.
Borussia Mönchengladbach 1–1 Augsburg
(Hahn 90‘4 - Finnbogason 57’)
Former Augsburg player Andre Hahn scored a 94th minute equalizer for Gladbach, breaking the hearts of his former club.
Augbsurg took the lead shortly before the hour mark, through Alfred Finnbogason. He raced through and his shot took two deflections on the way in, but creeped in to give Augsburg a vital goal.
But Augsburg were denied a victory that would have been a huge step in their quest towards safety – and Gladbach’s leveler came in the fourth minute of stoppage time.
Hahn scored at the far post after good work by Ibrahima Traore, keeping Augsburg only three points clear of danger.
As it happened: