Franck Ribery netted a rare Bundesliga goal as Bayern Munich eased to an eighth consecutive league victory with a 2-0 win over Mainz on Saturday.
After a sluggish first half-hour, the veteran Frenchman put Bayern ahead on 33 minutes. Picking up a poorly cleared corner on the edge of the box, he released a fizzing half-volley to score only his second league goal of the season.
James Rodriguez then doubled the lead just before half-time, elegantly bringing the ball down on his chest before volleying it past Robin Zentner.
"We were exhausted at the end," Bayern centre-back Mats Hummels told Sky Sport. "Mainz passed the ball well, but we deserved to win."
The win means that Bayern are now 18 points clear of Bayer Leverkusen and RB Leipzig at the top of the table.
English forward Ademola Lookman scored a late winner on his Bundesliga debut as Leipzig beat Borussia Moenchengladbach to return to the top four.
In a scrappy game on Saturday evening, Lookman came off the bench to score after joining on loan from Everton on deadline day, squeezing the ball past Tobias Sippel to secure victory in the 89th minute.
"He showed straight away that he has quality in one-on-one situations," said Leipzig coach Ralph Hasenhuettl of Lookman. "That was a really important win for us."
Victory saw Leipzig move up to third, drawing level on points with Bayer Leverkusen, who laboured to a 0-0 draw with Freiburg.
Lucas Alario hit the post for Leverkusen early in the game, but there were more yellow cards than chances, as seven players were booked and Freiburg once again frustrated a top team.
"It was a heated game," Leverkusen's Julian Brandt told Sky. "We knew in advance that it wouldn't be easy to come to Freiburg."
Pavlenka error costs Schalke
Leverkusen, though, remain in second after Schalke once again dropped points. Both teams profited from goalkeeping errors in Gelsenkirchen, as a late goal saw Werder Bremen snatch a surprise 2-1 victory.
A catastrophic mistake from Jiri Pavlenka gifted Schalke the lead on 24 minutes. Yevhen Konoplyanka's speculative effort flew straight at the Bremen goalkeeper, who allowed the ball to slip through his fingers.
"These things happen, it just looks stupid because he is the last man," said striker Max Kruse in Pavlenka's defence. "We all made mistakes on the pitch today."
With 11 minutes to go there was more farcical goalkeeping as Ralf Faehrmann allowed Kruse to equalise for Bremen.
After Matija Nastasic was sent off for a second bookable offence, Faehrmann fumbled the resulting free-kick, allowing the ball to bounce out of his hands and into the path of Kruse.
It would get worse for Schalke in stoppage time, as Zlatko Junuzovic stabbed a loose ball past Faehrmann to claim a dramatic and invaluable victory for relegation-threatened Bremen.
VfB Stuttgart hold Wolfsburg
In the lower half of the table, Mario Gomez scored against his former club to rescue a point for VfB Stuttgart, as they welcomed new coach Tayfun Korkut with a 1-1 draw in Wolfsburg.
Liverpool loanee Divock Origi put Wolfsburg in front on 24 minutes, curling a long-range shot into the bottom corner.
Gomez, who left Wolfsburg for Stuttgart in January, levelled the scores on the hour mark, prodding the ball home from close range.
In Saturday's other game, Hoffenheim extended their winless run to five matches after throwing away a 1-0 lead to draw at Hertha Berlin.
Andrej Kramaric gave Hoffenheim the lead from the penalty spot on 39 minutes, but Salomon Kalou's header drew the home side level just before the hour mark.
On Friday, Michy Batshuayi scored twice on his debut for Borussia Dortmund after joining on loan from Chelsea as his new club won 3-2 at bottom side Cologne.
Updated Date: Feb 04, 2018 09:44 AM