Bundesliga leaders Bayern Munich rescued a late draw at Hannover, whilst Werder Bremen leapfrogged Hamburg into second place.
Hannover were on the verge of a famous victory when Thomas Brdaric scored on 56 minutes, but Felix Magath's men showed their resilience to prevent only their second defeat of the season.
Captain Michael Ballack was the man to rescue a point, as he scored with a minute to go of normal time.
Werder Bremen moved to within nine points of the champions as they recorded a 1-0 win away at Borussia Dortmund.
The crowd at Westfalenstadion were silenced by Croatian international Ivan Klasnic as he scored on 37 minutes to make the hosts drop one place to eighth in the league.
Schalke moved to within two points of Hamburg, who play on Sunday, as both sides finished with ten men in a 2-1 win over Hertha Berlin.
The men from Gelsenkirchen took the lead after just seven minutes through Germany international Gerald Asamoah before Alexander Madlung (33) drew his side level.
Zlatan Bajramovic (47) restored Schalke's advantage, and both teams saw their numbers reduced when Gilberto and Fabian Ernst were both shown two bookings.
The game of the day saw Bayer Leverkusen score late on to edge a five-goal thriller at home to Duisburg - who had Marino Biliskov sent off for violent conduct in the second half.
The BayArena was sent into raptures thanks to two goals in the first seven minutes from Paul Freier and Tranquillo Barnetta, although the relegation threatened visitors showed great spirit to draw level thanks to a brace from Klemen Lavric (42, 65).
However, with time ticking away Bulgarian hit-man Dimitar Berbatov popped up to earn Bayer the three points with five minutes to go.
Kaiserslautern moved two points ahead of Duisburg and into 16th place as a double from Boubacar Sanogo (9, 88) saw them triumph 2-0 over Arminia Bielefeld.
The Bundesliga's bottom side Cologne crashed to their 13th defeat of the season with a 2-0 loss at Borussia Monchengladbach.
The Goats saw their challenge compromised after just 28 minutes when Roland Benschneider was dismissed for handball, and an own goal from Christian Lell (54) compounded their misery.
Olivier Neuville (74) added a second for the home side as they moved up to joint fifth.
Nurnberg grabbed three important points in the race to avoid the drop as Ivan Saenko's 16th minute strike secured them a 1-0 win over Wolfsburg.
Click below for match summaries:
Bayer Leverkusen 3-2 MSV Duisburg
Borussia Dortmund 0-1 Werder Bremen
Borussia M'gladbach 2-0 Cologne
Kaiserslautern 2-0 Arminia Bielefeld
Hannover 1-1 Bayern Munich
Hertha Berlin 1-2 Schalke 04
Nurnberg 1-0 Wolfsburg