Bayern Munich beaten by Hoffenheim, Borussia Dortmund defeat Hamburg
Oliver Baumann turned in an inspired display as Hoffenheim extended their unbeaten run to seven games with a 1-0 win over Bundesliga leaders Bayern Munich.
Andrej Kramaric scored the only goal as Hoffenheim moved to within a point of second-placed RB Leipzig, but needed their goalkeeper to pull off a string of fine saves after the break to do so.
Kramaric had drilled an early shot wide before he deservedly put the hosts ahead in the 21st minute when Mats Hummels only half-cleared a cross into the box and the Croatia international fired a half-volley past Sven Ulreich into the net.
Hoffenheim dominated the first half, but Bayern came close to levelling on the stroke of half-time when Robert Lewandowski saw his effort hit the crossbar.
And it was the Baumann show after the break as he denied Lewandowski twice with match-winning saves, while Franck Ribery also went close as Bayern tried in vain for an equaliser.
Borussia Dortmund kept pace with Hoffenheim as they coasted to a 3-0 victory over Hamburg.
Gonzalo Castro opened the scoring in the 13th minute when he curled a superb shot around the wall and past Rene Adler at the far post.
Dortmund wrapped up the victory with two goals in the last 10 minutes. Shinji Kagawa tapped home from close range after Pierre-Emerick Aubameyang had burst past Albin Ekdal down the left and picked him out.
Aubameyang then hit his 25th goal of the season after sprinting clear on the break, rounding Adler and rolling the ball into the empty net.
Werder Bremen made it six wins from seven games as they beat Schalke 3-0.
Theodor Gebre Selassie put them ahead in the 25th minute when he latched on to Zlatko Junuzovic's driven cross from the right to head past Ralf Fahrmann.
Max Kruse made it 2-0 from the penalty spot in the 76th minute after Benedikt Howedes had felled Finn Bartels.
And Maximilian Eggestein put the icing on the cake after robbing Leon Goretzka, feeding Kruse out wide and then firing home when he met Kruse's delivery into the box.
In the final game of the evening, Milos Jojic's strike gave Cologne a 1-0 win over Eintracht Frankfurt.
Jojic scored his second goal in two games after picking up David Abraham's header outside the box before driving a shot past Lukas Hradecky and into the net via a post eight minutes into the second half.