Bayern Munich moved back to the top of the table on Saturday, knocking Schalke off their perch.
Elsewhere, Bayer Leverkusen's recent wobble continued, allowing Borussia Dortmund to close on the UEFA Champions League places, and rock-bottom Hertha Berlin claimed a morale-boosting success.
The game of the day came at the Veltins Arena where Schalke, who led the way heading into the weekend, played host to nearest challengers Bayern Munich.
By the end of the 90 minutes roles had been reversed, with Bayern moving to the summit courtesy of a 2-1 win.
Two goals in two minutes from Franck Ribery (25) and Thomas Muller (26) put them in complete control, before Kevin Kuranyi pulled one back for the hosts on 31 minutes.
Bayern had Hamit Altintop dismissed four minutes before the interval, but they were able to hang on to three vital points.
Third-placed Bayer Leverkusen have now suffered three successive defeats after going down 3-2 away at Eintracht Frankfurt.
Selim Teber opened the scoring for the hosts with a 28th minute penalty, before a Stefan Kiessling double (33 & 46) turned the tie on its head.
Leverkusen then saw Daniel Schwaab sent off four minutes into the second half, and were pegged back on 62 minutes when Caio pounced.
A miserable afternoon for the visitors was then compounded two minutes from time when Malik Franz settled a five-goal thriller.
Borussia Dortmund are now just a point adrift of the top three after they secured an impressive 2-1 win over Werder Bremen.
Kevin Grobkreutz (10) and Neven Subotic (22) did the damage for Dortmund, bringing Bremen's eight-match unbeaten run to an abrupt end.
Aaron Hunt did pull one back for the visitors on 65 minutes, but it was not enough.
Nurnberg helped to ease their relegation fears with a 2-0 win over an out-of-sorts Mainz.
Mike Frantz handed them a 10th minute advantage and Eric Maxim Choupo-Moting doubled it five minutes before half-time.
Mainz's cause was hardly helped by the fact that they saw Andreas Ivanschitz given his marching orders with just four minutes on the clock.
Stuttgart ensured they remain in the European hunt with a 2-1 win at home to Borussia Monchengladbach.
Marco Reus fired Michael Frontzeck's rejuvenated side in front after 33 minutes, but Ciprian Marica restored parity on 66 minutes.
Zdravko Kuzmanovic then completed the Stuttgart fightback seven minutes from time when he bagged a winner.
Freiburg and Bochum took a point apiece from their relegation battle, playing out a 1-1 draw.
Papiss Cisse put Freiburg, who remain inside the bottom three, in front on 18 minutes but Christoph Dabrowski levelled on 24 minutes, ensuring Bochum remain three points clear of the drop zone.
Hertha Berlin's survival bid was given a welcome shot in the arm by a comfortable 3-0 win at fellow strugglers Cologne.
Raffael bagged a brace (25 & 75) to give them a healthy lead at the interval.
They then added a third through Cicero on 75 minutes, making the most of Youssef Mohamad's sending off two minutes earlier.
Zoran Tosic also saw red three minutes from time, meaning Cologne finished the game with only nine men.