Bayer Leverkusen 1-1 Borussia Dortmund
(Volland 30' - Yarmolenko 73')
Kevin Volland was given the freedom of the BayArena to run an entire half of the pitch to open the scoring as Dortmund's defense again fell apart. Leverkusen's Wendell was then dismissed via the video assistant for a poor tackle just before the break.
Dortmund's Andriy Yarmolenko eventually prodded in an equalizer but the draw still left coach Peter Bosz looking over his shoulder after seven league games without a win.
Bayern Munich 3-1 Hannover 96
(Vidal 17', Coman 67', Lewandowski pen. 87' - Benschop 35')
The leaders got back to winning ways with a controversial victory. Arturo Vidal grabbed the lead with a header that was probably a pass. Robert Lewandowski then had a goal ruled out for offside and Hannover's Niclas Füllkrug soon missed a retaken penalty after encroachment.
The visitors finally leveled through Charlison Benschop's header from a corner but Kingsley Coman made it 2-1 for Bayern with the returning Thomas Müller again key to the build-up. Lewandowski secured the win with a penalty.
Schalke 2-2 Cologne
(Burgstaller 36', Harit 72' - Guirassy 50', 77' pen)
Cologne coach Peter Stöger is out of a job despite misfiring forward Sehrou Guirassy finally coming good in a battling display at in-form Schalke.
The 21-year-old Frenchman brought the bottom side level twice, once with a gangly but clever finish following a free kick and then from the penalty spot after Benjamin Stambouli was adjudged to have deliberately handled by the video assistant.
Hoffenheim 4-0 RB Leipzig
(Amiri 13', Gnabry 52', 62', Uth 87')
Julian Nagelsmann's side had won just one league game in seven coming into the clash with Leipzig but they turned on the style to down last term's runners-up.
A wonderful flowing move from inside their own half was finished expertly by Nadiem Amiri on 13 minutes before Serge Gnabry took over with a cool finish and a fantastic chip from 45 meters. Mark Uth added the fourth.
Werder Bremen 1-0 Stuttgart
Max Kruse fired second-last Bremen to only their second win of the campaign. The victory was deserved and could have been more flattering but a second-half strike from Fin Bartels was ruled out after consultation with the video assistant.
Hertha Berlin 1-2 Eintracht Frankfurt
(Selke 15' - Wolf 26', Boateng 80')
Former Hertha player Kevin-Prince Boateng grabbed the win with a fine curling effort. Davie Selke had given Hertha the lead in the Berlin sleet after good work from Mathew Leckie, but the visitors hit back through Marius Wolf following a corner straight off the training ground. Frankfurt moved up to eighth.
Wolfsburg 3-0 Borussia Mönchengladbach
(Malli 4', Didavi 25', Guilavogui 71')
Gladbach coach Dieter Hecking's return to Wolfsburg did not go to plan with Yunus Malli inspiring the hosts to a comfortable win. Malli first converted a Mario Gomez pull-back and then played in Daniel Didavi with a cheeky chipped pass. Josuha Guilavogui added the gloss from distance. Gladbach could have gone second with a win but remain fourth.
Mainz 1-3 Augsburg
(Holtmann 85' - Gregoritsch 22', Finnbogason pen. 43', 86')
Augsburg continued their decent away form with a dominant performance at ever inconsistent Mainz. The hosts were not helped by goalkeeper Robin Zentner dropping a cross and then conceding a spotkick which Alfred Finnbogason converted. Despite scoring, Mainz's hopes were ended a minute later with Finnbogason's second.
Freiburg 0-0 Hamburg
A hard-fought encounter between two of the Bundesliga's struggling teams ended goalless in a freezing Black Forest on Friday. It's a result which does neither side much good.Mark Meadows