In their final outings before the winter break, there were wins for Wolfsburg, Frankfurt and Hamburg, while Dortmund were held by Augsburg. A minute's silence was held for the victims of the Berlin attack before kickoff.
Dortmund 1-1 Augsburg
(Dembele 47' - Ji 33')
There was some good news for Dortmund fans shortly before the match when the club announced that Germany midfielder Julian Weigl had agreed a contract extension until 2021.
Mario Götze came close to an opener for the hosts in the ninth minute when his deflected shot struck a post before Augsburg took a surprise lead thanks to some poor Dortmund defending.
Roman Weidenfeller saved Ji Dong-won initial effort but the South Korean forward was quickest to the rebound and clipped the ball high into the net.
Dortmund were level shortly after the break when Ousmane Dembele exchanged passes with Shinji Kagawa and used his pace to beat the Augsburg defense to the return ball before slotting past Marwin Hitz.
The Dortmund players pushed for a win to mark coach Thomas Tuchel’s 50th Bundesliga game in charge but they were unable to find another goal.
They have already dropped points in nine matches, only one fewer than the whole of last season. Dortmund do end the year unbeaten at home. The last and only previous time they managed it was 51 years ago.
Gladbach 1-2 Wolfsburg
(Caligiuri 3', Gomez 5' - Hazard 52')
Seeking consecutive wins for the first time this season, Wolfsburg raced into the lead after only three minutes when Daniel Caligiuri conjured a splendid finish from Maximilian Arnold’s centre.
Gladbach leveled seven minutes into the second half. Thorgan Hazard was on hand to tuck the ball away after Diego Benaglio had saved Lars Stindl’s initial effort.
Mario Gomez struck what proved to be the winner five minutes later, running onto Julian Draxler’s pass and rounding Yann Sommer.
Another defeat will heap more pressure on Gladbach coach Andre Schubert. They have already lost eight times, two more than in the whole of last season, and slip to 14th, one place below Wolfsburg.
Hamburg 2-1 Schalke
(Müller 61', Wood 82' - Avdijaj 90')
Hamburg were ahead just after the hour as they went in search of a third win in four games.
They broke swiftly and Filip Kostic sent a perfectly weighted pass through to Nicolai Müller, whose effort ricocheted into the goal off Schalke keeper Ralf Fährmann.
The home side had a chance to double their lead 14 minutes from time when Kostic earned a penalty but Fährmann saved Johan Djourou’s weak effort.
Bobby Wood did make it 2-0 to Hamburg eight minutes from time when he cut in from the right wing and cracked a superb left-foot effort high into the net.
Schalke pulled a goal back in the 90th minute thanks to Donis Avdijaj’s fine volley but Hamburg held on to prevent Schalke beating them three times in a row for the first time since the late 1970s.
They are still in the relegation places though, two points behind 15th-placed Werder Bremen, who play at Hoffenheim on Wednesday.
Frankfurt 3-0 Mainz
(Hrgota 18', 85', Barkok 75')
Frankfurt took an early lead when Branimir Hrgota raced onto a long ball from David Abraham and finished clinically past Mainz goalkeeper Jonas Lössl.
Mainz's chances of a comeback were dealt a blow in the 56th minute when the referee ruled forward Jhon Cordoba had deliberately stamped on Abraham and showed the Colombian a straight red card.
Frankfurt doubled their lead when a clever back heel released substitute Aymen Barkok and the teenager showed great skill and composure to dribble past the Mainz defense, round Lössl and score.
Barkok then turned provider, slipping the ball to Hrgota for the Swede to stroke in his second of the night.
Frankfurt have been flying in the first half of the season and climbed above Dortmund into third.