By Mark Buckingham
Last Updated: 01/01/70 1:00am
Stuttgart moved to the top of Die Bundesliga while Bayern and Werder both lost.Stuttgart moved to the top of Die Bundesliga while Bayern Munich and Werder Bremen both slipped to surprise defeats.
Borussia Dortmund travelled to Stuttgart in search of a boost to their season but they left disappointed after a 2-0 loss.
Andreas Hinkel scored Stuttgart's first on 52 minutes and Cacau wrapped up the win midway through the second half.
Gerald Asamoah's 76th minute strike was enough for Schalke to condemn Bayern to defeat in the Olympic Stadium.
Defending champions Werder Bremen suffered a shock defeat on their travels as they endured a late collapse at Mainz.
Bremen appeared poised for their fifth win of the league season when Greece international Angelos Charisteas scored on 56 minutes.
But Mainz, who have lost only once since gaining promotion, produced a fine comeback as Niclas Weiland and Benjamin Auer turned the game on its head in the final seven minutes.
Bayer Leverkusen's trip to the capital met with failure as they were beaten 3-1 by Hertha Berlin.
The visitors were undone by Hertha's Brazilian connection as Gilberto and Marcelinho were both on the scoresheet.
Gilberto scored five minutes before the break and Thorben Marx's 53rd minute goal sent Hertha further clear.
Bernd Schneider quickly reduced the arrears but Marcelinho's 79th minute goal kept Bayer at bay.
Nurnberg collected only their second three-point haul of the campaign by inflicting a 3-0 drubbing on Freiburg.
Marek Mintal broke the deadlock on 26 minutes before Robert Vittek extended the advantage four minutes after half time. Markus Schroth scored the third on 56 minutes.
Hansa Rostock lifted themselves off the foot of the table as Rade Prica's 75th minute goal earned a win at Bochum.
Second half goals from Patrick Owomoyela and Delron Buckley clinched the points for Arminia Bielefeld at Hamburg, who drop to the foot of the standings.
Click below for an individual match summary:
Bayern Munich 0-1 Schalke
Bochum 0-1 Hansa Rostock
Hamburg 0-2 Arminia Bielefeld
Hertha Berlin 3-1 Bayer Leverkusen
Mainz 2-1 Werder Bremen
Nurnberg 3-0 Freiburg
Stuttgart 2-0 Borussia Dortmund