Berlin: Klaas Jan Huntelaar's hat trick helped Schalke to a 4-1 win over Mainz, while Bundesliga leader Bayern Munich grinded out a 1-0 win at Hertha Berlin on Saturday.
Bayern also had a Dutchman to thank, with Arjen Robben's 27th-minute strike enough for the defending champions to go provisionally 10 points clear after 13 games.
"The second half wasn't good, but OK, three points, the end," Robben said.
Bayer Leverkusen routed Cologne 5-1 in the Rhine derby, Werder Bremen defeated Paderborn 4-0, and Augsburg came from behind to beat Hamburger SV 3-1 and climb provisionally fourth.
Schalke's inconsistent season continued as it bounced back from Tuesday's 5-0 defeat at Chelsea in the Champions League to go sixth, ahead of Hannover, which was visiting Hoffenheim later.
"It was the best reaction we could give," Schalke coach Roberto Di Matteo said.
Huntelaar's brilliant chip in the ninth was followed by an easier finish in the 25th when he was left free.
Japan striker Shinji Okazaki pulled one back a minute before the break with his seventh goal of the season, but Tranquillo Barnetta scored in the 54th and Huntelaar completed his hat trick seven minutes later — taking his Schalke tally to 101 goals in 157 competitive games.
At Berlin's Olympiastadion, Thomas Mueller's back-heel to the on-running Robben was only bettered by the Dutchman's fine finish inside the far post.
Hertha improved after the break, harrying and harassing the visitors, and Japan midfielder Hajime Hosogai thought he'd equalized in the 62nd, only to be ruled offside.
Hertha 'keeper Thomas Kraft made a number of saves to deny his former side, while American defender John Anthony Brooks missed the chance to equalize by firing over from a promising position late on.
"We weren't decisive enough after scoring the goal to get another," said Bayern defender Jerome Boateng, who was honored by his hometown club before kickoff.
Cologne midfielder Matthias Lehmann opened the scoring in Leverkusen with a penalty in the fourth minute. He had been brought down by Bernd Leno, who was booked.
The Leverkusen keeper was lucky not to concede another in the 15th when he appeared to bring down Anthony Ujah, but this time the referee said play on.
Karim Bellarabi equalized in the 26th from the rebound after Timo Horn spilled Hakan Calhanoglu's free kick, and Calhanoglu made it 2-1 with another free kick in the 61st.
Leverkusen substitute Josip Drmic secured the result in the 79th, then scored again in the 88th, before Bellarabi claimed his second in injury time.
In Bremen, Zlatko Junuzovic scored with a perfect free kick in the 10th minute, Davie Selke scored on the rebound after another Junuzovic free kick hit the post in the 48th, Fin Bartels made it 3-0 two minutes later, and Levent Aycicek completed the scoring in the 80th.
Hamburg captain Rafael van der Vaart scored just before the break with his side's first shot on goal, but Halil Altintop equalized five minutes after it and Raul Bobadilla completed Augsburg's comeback in the 62nd. Paul Verhaegh sealed the result with a penalty in the 70th.