Bayer Leverkusen beat Hoffenheim 2-1 on Saturday to keep the Bundesliga title race alive, with leaders Borussia Dortmund shock losers.Iceland international Gylfi Sigurdsson put visitors Hoffenheim ahead on 28 minutes at the BayArena.
But Czech fullback Michal Kadlec equalised for Leverkusen, before Arturo Vidal struck five minutes into the second half to make it 2-1 to the hosts.
The victory sees Leverkusen close to within five points of league leaders Borussia Dortmund with three matches remaining.
Dortmund remain favourites to win their first league championship since 2002, but they will have to wait at least another week after suffering a surprise 1-0 loss away to struggling Borussia Monchengladbach.
Mohamadou Idrissou scored the winner for the unfancied hosts in the 34th minute at Borussia-Park.
Monchengladbach’s second victory in three matches sees the team climb off the foot of the table, although they remain five points away from safety.
Elsewhere, Bayern Munich dropped valuable points in their attempt to finish third – and secure the all-important Champions League qualification berth – following a 1-1 draw away to Eintracht Frankfurt.
Frankfurt led through Sebastian Rode’s goal eight minutes into the second half and Bayern were lucky to escape with a point, salvaged through a Mario Gomez penalty on 88 minutes.
Bayern remain fourth, one point behind third placed Hannover, while Frankfurt are 15th, now five points clear of the relegation zone.
Stuttgart boosted their survival hopes with a 3-0 win at home to Hamburg.
A Cacau brace and Christian Gentner’s goal secured the points for the hosts at the Gottlieb-Daimler-Stadion.
Stuttgart climb to 13th place, with a seven-point buffer protecting them from the drop.
St Pauli look likely to return to the second tier after just one season in the Bundesliga following their latest defeat – 3-1 at home to Werder Bremen.
They led through Fin Bartels’ goal on 29 minutes at the Millerntor-Stadion, but a Markus Thorandt own goal brought the visitors level, before a Claudio Pizarro double in the space of two minutes guaranteed Werder all three points.
Monchengladbach victory means St Pauli are now bottom on goal difference, five points from safety.
Kaiserslautern managed a 1-0 win away to Champions League semi-finalists Schalke, with Srdjan Lakic scoring the only goal four minutes before the break at the Veltins Arena.
The win puts Kaiserslautern 12th, three points behind 10th-placed Schalke.