Schalke moved level on points with Bayern Munich in the race for the Bundesliga title as Heiko Westermann's 87th-minute winner earned the Royal Blues a 1-0 win over basement boys Hertha Berlin.
The defeat all but ended Hertha's hopes of survival, though, leaving them five points from safety.
Bayern were held to a 1-1 draw at Borussia Monchengladbach to leave them above their rivals on goal difference only with two games remaining.
Marco Reus put Gladbach ahead in the 60th minute, but Miroslav Klose rescued a point for Bayern 13 minutes later - just seven minutes after coming off the bench.
Bayer Leverkusen and Borussia Dortmund kept up their bids for a top-three finish with victories.
Leverkusen beat second-bottom Hannover 3-0 thanks to a brace from Stefan Kiessling, the second a penalty, either side of a Burak Kaplan effort.
Lucas Barrios scored in hat-trick in Dortmund's 3-2 win at Nurnberg, for whom Mike Frantz and Christian Eigler were on target.
Hannover remained point behind third-bottom Freiburg, who play Wolfsburg tomorrow, Bochum and Nurnberg.
Elsewhere, Aristide Bance scored twice, including an 86th-minute leveller, to earn Mainz a 3-3 draw at home to Eintracht Frankfurt.
Two goals from Alexander Meier put the visitors in control after 20 minutes, but Jan Simak made it 2-2 after Bance had pulled one back.
Umit Korkmaz restored Eintracht's lead just after the hour mark before Bance struck again.
mfl
Werder Bremen remained third, ahead of Leverkusen on goal difference, after Torsten Frings' 90th-minute penalty earned them a 1-0 home win over Cologne.
Pedro Geromel's handball on the goalline gave away the spot-kick and the Cologne man was sent off for the offence.
Related Articles

Talent drain: Aussie prospect makes scoring debut for Turkey

Joeys ace heads to Germany for Schalke audition
