Eintracht Frankfurt 5-1 Bayern Munich
Ten-man Bayern Munich dropped to fourth on the table after a humiliating 5-1 thumping by Eintrach Frankfurt at Commerzbank Arena.
An early red-card to Jerome Boateng in the ninth minute gave Eintracht the upper hand, as Filip Kostic, Djibril Sow, David Abraham, Martin Hinteregger and Goncalo Paciencia were all on target in a rampant win, while Robert Lewandowski scored a consolation goal for the Bavarians.
Borussia Dortmund 3-0 Wolfsburg
Borussia Dortmund went up to second on the table after thrashing Wolfsburg 3-0 at Signal Iduna Park.
Thorgan Hazard, Raphael Guerreiro and Mario Gotze all netted second-half goals for Dortmund.
Bayer Leverkusen 1-2 Borussia Monchengladbach
Marcus Thuram scored the winner for Borussia Monchengladbach as they went three points clear at the top of the table with a 2-1 win over ten-man Bayer Leverkusen at Bay Arena.
Oscar Wendt the opener for Monchengladbach but only for Kevin Volland to equalise for Bayer. However, Thuram got what eventually became the winner just before the break, while Leon Bailey was red-carded deep in stoppage time for the hosts.
RB Leipzig 8-0 Mainz
RB Leipzig went up to third on the table after annihilating Mainz 8-0, with Timo Werner grabbing a hat-trick at Red Bull Arena.
Werner's hat-trick was complemented by goals from Marcel Sabitzer, Christopher Nkunku, Marcel Halstenberg, Yussuf Poulsen and Nordi Mukiele.
Werder Bremen 2-2 Freiburg
Nils Petersen's brace earned ten-man Freiburg a 2-2 draw against Werder Bremen in a four-goal thriller at Weser Stadion.
Milot Rashica and Theodor Gebre Selassie scored for Werder, while a brace by Petersen, that included a stoppage time equaliser earned Freiburg a point, despite Janik Haberer being sent off with three minutes remaining.
Union Berlin 1-0 Hertha Berlin
Union Berlin scored a late penalty through Sebastian Polter to sink Hertha Berlin 1-0 at Stadion An Der Alten Forsterei.