Borussia Dortmund are back in third with a 3-2 win over Borussia Mönchengladbach. Mainz held Bayern Munich at the Allianz Arena, while Max Kruse powered Werder Bremen towards the European places.
Gladbach 2-3 Dortmund
(Stindl 43', Schmelzer 48' o.g. - Reus pen. 10', Aubameyang 59', Guerreiro 87')
Borussia Dortmund came from behind to beat Borussia Mönchengladbach on Saturday evening, despite starting at Borussia-Park with Julian Weigl and Pierre Emerick Aubameyang on the bench. Dortmund got an early boost from Christian Pulisic, who drew a penalty on the edge of the box from Nico Elvedi. Marco Reus stepped up to the spot and converted the spot kick as he continued his fine run of form.
But Dortmund gift wrapped Gladbach a route back into the game due to their own mistakes. Mikel Merino, a first-half replacement for the injured Nuri Sahin, passed the ball straight to Andre Hahn in a dangerous position. He threaded a ball to Stindl who scored the equalizer. After the break, Schmelzer gifted another goal, turning a cross from Oscar Wendt into his own net.
Aubameyang turned the tide when he came for Reus 10 minutes later. He received a pinpoint through ball from Ousmane Dembele before finishing the second equalizer of the game from a tight angle. Raphael Guerreiro provided Dortmund with the winner just before full time, heading home a free kick from Gonzalo Castro.
Dortmund take third place from Hoffenheim as a result, while Gladbach slip down to 10th place with the defeat.
Bayern Munich 2-2 Mainz
(Robben 16', Thiago 73' - Bojan 3', Brosinski pen. 41')
Three days after getting knocked out of the Champions League by Real Madrid, Bayern Munich's week didn't get any better at home to struggling Mainz, who took a shock lead through January signing Bojan. The visitors almost doubled their lead shortly later but instead it was the tried and tested combination of Franck Ribéry and Arjen Robben who combined for the equalizer, the Dutchman slotting home from the Frenchman's pass.
Just before half-time, the visitors were ahead again, Daniel Brosinski converting from the spot after Joshua Kimmich had fouled Yoshinori Muto in the box. Mainz have now scored 25 of their last 26 penalties in the Bundesliga.
With 74 percent possession, Bayern piled on the pressure in the second half and were finally rewarded with just over a quarter of an hour to play when Thiago fired home from the edge of the box. Bayern believed they should have had a penalty two minutes later when Alexander Hack caught Robert Lewandowski late but the referee waved the claims away.
Despite late pressure, Martin Schmidt's side held on for a vital and unexpected point in their relegation battle. RB Leipzig have the chance to cut Bayern's lead to six points if they beat Schalke tomorrow.
Ingolstadt 2-4 Werder Bremen
(Lezcano 32', Groß 62' - Kruse pen. 45+1', 81', 87', 90+4')
Four goals from Max Kruse capped off an astonishing afternoon in Ingolstadt for Werder Bremen.
Dario Lezcano gave the hosts the lead in the Audi Sportpark, bringing down Marcel Tisserand's long ball and slotting home past Wiedwald. But Max Kruse, drew the visitors level from the penalty spot after Tisserand had brought down Fin Bartels. Kruse has now scored all 11 of his Bundesliga penalties.
Referee Markus Schmidt pointed to the spot again on the hour mark, this time in favor of the hosts, Pascal Groß converting after a Moisander foul on Cohen to restore the Schanzers' lead.
Ingolstadt were hoping to hold on for a vital victory only have themselves to blame for Bremen's second equalizer. After Moisander looped a harmless ball into the box, goalkeeper Martin Hansen made a mess of the clearance which fell to Kruse, who forced the ball home to bring Werder level again.
With three minutes remaining, it got even better for Kruse and Bremen, the 29-year-old firing home from the edge of the area to put his team 3-2 up and - incredibly - into the European places. Kruse notched up his fourth goal of the afternoon in injury time after Ingolstadt had poured forward in search of an equalizer. An astonishing turn-around from Alexander Nouri's men in the second half of the season.
Hamburg 1-2 Darmstadt
(Holland 90+3' o.g. - Sulu 51', Platte 53')
Darmstadt won away for the first time all season, inflicting a first home defeat since November on Hamburg. Darmstadt coach Torsten Frings admitted ahead of kick off that his team were already as good as relegated but insisted his players were determined to fight in order to preserve the integrity of the competition.
After a slight delay due to pyrotechnics in the home end, the first half ended goalless. But after the break, it was the Lillies who put on an explosive show, scoring two goals in two minutes to take a 2.0 lead. First, Aytac Sulu forced the ball home from a corner before Felix Platte doubled the lead.
Hamburg pulled one back thanks to a Fabian Holland own goal but it was too little, too late.
Eintracht Frankfurt 3-1 Augsburg
(Fabian, 78', 87', Rebic 90+1' - Gouweleeuw 9')
Elsewhere in the relegation battle, Jeffrey Gouweleeuw gave struggling Augsburg a surprise lead away at Frankfurt, who had only managed five goals in their previous ten games going into Matchday 30.
And for a long time, it looked as it the Eagles would struggle to score here too, until Marco Fabian poked home Chandler's knock-back inside the six-yard-box. Having enjoyed almost 80% of the ball, it was a deserved equalizer.
Ten minutes later, relief turned to ecstasy in the Commerzbank Arena. After the ball had ping-ponged around the edge of the box, it fell to the Mexican who fired Eintracht into the lead. In injury time, Ante Rebic made it 3-1 to give Frankfurt their first home win since Darmstadt in February.
Hertha Berlin 1-0 VfL Wolfsburg
After an uneventful first half, it was Hertha who took a rather undeserved lead in the second half against Wolfsburg, courtesy of top scorer Vedad Ibisevic - his 11th goal of the season.
Mario Gomez struck the bar in the second half for Wolfsburg but it was the closest they came to an equalizer.