Bayern go 20 clear, Dortmund second
Bayern Munich compounded Schalke's woes at the end of a week to forget for the Royal Blues as they went down 5-1 at the Allianz Arena, a result which moved Pep Guardiola's men 20 points clear at the top.
After conceding six in the Champions League at home to Real Madrid in midweek, the last thing Schalke would have wanted was to be four goals behind after only 28 minutes.
David Alaba, Arjen Robben (two) and Mario Mandzukic put Bayern in control of the game before a charitable Rafinha own goal gave Schalke some scant consolation.
Robben then completed his hat trick from the penalty spot after Kyriakos Papadopoulos was shown a red card to round off another bad day at the office for Schalke.
Dortmund claimed maximum points with ease in a 3-0 win over Nurnberg and move up to second in the table.
They took the lead on 51 minutes when Nuri Sahin's free-kick was met by the head of Roberto Lewandowski and though goalkeeper Raphael Schafer kept it out with his arm, Mats Hummels followed in to ensure the ball crossed the line from point-blank range.
Lewandowski scored himself in the 64th minute, curling in from 20 yards via Henrik Mkhitaryan's pass, for his 15th of the season.
Mkhitaryan got his name on the scoresheet in the 83rd minute, with Sahin lifting the ball over the top for Jonas Hofmann, who played the ball into the path of the Armenian to slide the ball into the near post and complete the victory.
Leverkusen's miserable run of form continued as they lost their third straight Bundesliga game, going down 1-0 at home to Mainz, allowing Dortmund to climb above them.
Eric-Maxim Choupo-Moting's 27th-minute backheel was enough to earn Thomas Tuchel's men all three points and keep their hopes alive of playing in Europe next season, while denting Leverkusen's Champions League aspirations.
It was also Leverkusen's fifth defeat in just over two weeks, having also lost in the DFB-Pokal and Champions League.
Two extraordinary own goals, both by goalkeepers, ensured Eintracht Braunschweig and Borussia Monchengladbach took a point apiece from a 1-1 draw at the Eintracht Stadion.
Daniel Davari was first to turn the ball into his own net and give Gladbach the lead before the highly-rated Marc-Andre ter Stegen was left with egg on his face with an even worse error of his own gifting Braunschweig a point.
The Foals tried harder to get the win in the closing stages, and take Ter Stegen out of the firing line, but Davari was not going to be beaten again.
Augsburg and Hannover shared two goals at the Augsburg Arena, with the hosts missing an opportunity to move into the top six with a 1-1 draw.
Mame Diouf put Hannover in front against the run of play before Ragnar Klavan headed in an equaliser.
The Bavarians pushed for the win, which would have seen them move into a Europa League qualification berth, but Hannover held on to end their three-game losing streak and put six points between themselves and the bottom three.
Werder Bremen took the honours in the 100th northern Germany derby against Hamburg, whose supposed revival ended after just one game with a 1-0 defeat at the Weser Stadion.
Zlatko Junuzovic decided matters in the 19th minute of a game which started with Bremen in dominating form, saw Hamburg recover for the start of the second half only to end with Bremen again in the ascendency.
The result puts six points between the two sides with Hamburg stuck inside the bottom three in Mirko Slomka's second game in charge.was caught napping.