Nils Petersen scored his third penalty of the week to lead Freiburg to another shock. Elsewhere, Frankfurt bounced back after defeat at the weekend, Dortmund finally won but RB Leipzig had another disappointing day.
Bayern Munich 1-0 Cologne
With their regular forwards unavailable, Cologne did their best prevent the defending Bundesliga champions from scoring. The Billy Goats managed to do so in the first half, keeping Bayern off the scoreboard at the break despite holding just 16 percent of the ball. But Robert Lewandowski, who now leads the Bundesliga with 15 goals, found the breakthrough after Thomas Müller headed down the ball for him. Cologne remain bottom, with three draws to their name this season, while Bayern increased their lead atop the table to nine points.
Schalke 3-2 Augsburg
(Di Santo 44', Burgstaller 47', Caligiuri pen. 83' — Caiuby 64', Gregoritsch pen. 79')
Schalke are now in second place after a grueling victory against Augsburg in Gelsenkirchen. Franco Di Santo put the hosts in front right before the break, and Guido Burgstaller doubled the advantage not long after the intermission. But Augsburg, who have been a surprise team this season, slowly crawled back into the game. Caiuby got one back for Augsburg before Michael Gregoritsch drew and converted a penalty for the equalizer. But Marwin Hitz sucked the wind out of Augsburg's comeback when he recklessly tackled Schalke's Amine Harit in the box, which Daniel Caliguri converted for the winning goal.
Leverkusen 1-0 Werder Bremen
Bayer Leverkusen stretched their unbeaten run to 11 games, dispatching Werder Bremen in BayArena. Lucas Alario opened the scoring, putting away Leverkusen's earliest goal in any game this season. Max Kruse, who has either scored or assisted Werder Bremen's last seven goals, failed to get a shot off all game. The win propels Leverkusen to fourth in the standings.
Mainz 0-2 Borussia Dortmund
(Sokratis 55', Kagawa 89')
Hardly a stellar start to the Peter Stöger era but a return to winning ways nonetheless. Dortmund's 1-0 lead arrived from an unlikely source after almost an hour. Sokratis smashed home after the ball ricocheted his way in a crowded penalty area. Mainz were the better team for long periods in the second half but, for the first time since September, Dortmund managed to defend their lead. Shinji Kagawa made certain in the game's dying minutes after Pierre-Emerick Aubameyang wrong-footed the Mainz defense. The Gabon striker teed him up for his third goal of the season.
Wolfsburg 1-1 RB Leipzig
(Verhaegh 15' — Halstenberg 52')
Wolfsburg will be kicking themselves for not taking all three points on a night RB Leipzig appeared far from their best. The home side led after 15 minutes; Paul Verhaegh slotting home cooly from the penalty spot after Mario Gomez was tripped in the area. It looked a little soft at first but it was clear the referee had got it right on second glance. Marcel Halstenberg drew Leipzig level after 52 minutes, stretching to slot his shot beyond Koen Casteels. The Wolves enjoyed the lion's share of chances in the second half, however, with Divock Origi, the Liverpool loanee, the main culprit. Leipzig's Dayot Upamecano was sent off for a second bookable offence in added time.
Hoffenheim 1-0 Stuttgart
It was a gutting away loss for Stuttgart, conceding in the closing phases. The guests had to make two first half substitutions after both Anastasios Donis and Chadrac Akolo picked up injuries. They seemed to be holding Hoffenheim at bay, but when Pavel Kaderabek gathered up his own shot, which had clattered the post, he the found Mark Uth for the killing stroke. Hoffenheim have now won two of their last three games and remain within striking distance of the Champions League places.
Hertha Berlin 3-1 Hannover
(Kalou 18', 45', Torunarigha 83' — Bebou 65')
With snow falling at the Olympic stadium in Berlin, Hertha Berlin held off a late advance from Hannover to pick up their first win in December. Salomon Kalou, who scored a late equalizer against Augsburg, struck twice in the first half, but Hannover's Ihlas Bebou cut the advantage in half with his fifth goal of the season. Jordan Torunarigha, who came on for an injured Karim Rekik in the second half, secured the victory with his second career goal.
Freiburg 1-0 Borussia Mönchengladbach
Nils Petersen showed again how cool he is under pressure, slotting home his third penalty of the week to give Freiburg an unlikely win over Gladbach. It was his prowess from 12 yards which inspired his team's comeback against Cologne at the weekend. Meanwhile, it's not been Jannik Vestergaard's week. The Dane's own goal cost Gladbach two points against Schalke at the weekend and it was his foul on Petersen which gave away Tuesday's penalty.
Hamburg 1-2 Eintracht Frankfurt
(Papadopoulos 9' — Wolf 17', Gacinovic 24')
Eintracht have found life on the road good this season and Matchday 16 was no different despite going a goal behind. Defender Kyriakos Papadopoulos put the hosts ahead, before Marius Wolf smashed Eintracht Frankfurt level on 19 minutes. The visitors then took the lead via a dazzling passage of play which culminated in Mijat Gacinovic steering home Timothy Chandler's pass. There was further anguish for Hamburg as Dennis Diekmeier had a second half effort chalked off for offside. Victory moves Eintracht up to seventh, Hamburg slip to 16th.