David Alaba scored twice as Bayern Munich extended their lead at the top of the Bundesliga to 15 points with an 4-0 thrashing of struggling Schalke.
Alaba opened the scoring from the penalty spot in the 19th minute and then made it 3-0 at the start of the second half after Bastian Schweinsteiger had doubled Bayern's lead with a free-kick.
Mario Gomez completed the rout in the 63rd minute as Bayern took full advantage of second-placed Borussia Dortmund's surprising 4-1 home defeat to Hamburg.
Dortmund's day started well, when Robert Lewandowski put the hosts ahead after 17 minutes but things went wrong quickly as Artjoms Rudnevs and Son Heung-min put Hamburg ahead in an eight-minute burst.
Lewandowski was then dismissed in the 31st minute and Dortmund never got back on track.
Jeffrey Bruma was sent off in the 59th minute to even the numbers but Hamburg continued to impress and widened the margin of victory as Rudnevs and Son both scored again in the second half.
Third-placed Bayer Leverkusen failed to capitalise as Patrick Herrmann grabbed a late equaliser to seal a 3-3 draw for Borussia Monchengladbach.
Gladbach twice pulled ahead through Martin Stranzl and Luuk de Jong in the 44th and 58th minutes but Leverkusen equalised through Sidney Sam in the 52nd minute and Stefan Kiessling on the hour.
Andre Schurrle gave Leverkusen the lead for the first time in the 64th minute only to see Herrmann equalise for Gladbach four minutes from time.
At the wrong end of the table, Wolfsburg defeated rock-bottom Greuther Furth 1-0 courtesy of Bas Dost's 23rd-minute goal and third bottom Hoffenheim lost 1-0 at Hannover. Mame Biram Diouf was the scorer in that match.
Mehmet Ekici scored twice as Werder Bremen saw off Stuttgart 4-1.
Ekici's first goal in the 34th minute was cancelled out by Ibrahima Traore in the 50th minute. But Aaron Hunt restored Bremen's lead before Ekici added his second in the 74th and Kevin de Bruyne sealed maters in in stoppage time.
In the day's remaining fixture Nurnberg drew 0-0 at Frankfurt.