Leipzig lost for the first time since October, and Bayern Munich and Borussia Mönchengladbach both won to throw the Bundesliga title race wide open on Saturday.
Eintracht Frankfurt defeated Leipzig 2-0, with defender Almamy Toure scoring a brilliant goal just after the break and Filip Kostic sealing the win in injury time, to deal the league leader its first defeat since a 2-1 loss at home to Freiburg in the ninth round.
Bayern cut the gap to just a point with a 5-0 demolition of Schalke in the late game, while Gladbach is two points behind Leipzig after a 3-1 win at home over Mainz, thanks largely to goals in each half from French striker Alassane Plea.
Borussia Dortmund is four points off the top after its 5-1 win over Cologne on Friday, the first game of the 19th round.
Also Saturday, Dodi Lukebakio scored in the last minute for Hertha Berlin to come from behind and win 2-1 at Wolfsburg, Union Berlin beat Augsburg 2-0 at home, and Paderborn moved off the bottom with a 2-0 win at Freiburg.
BAYERN'S STATEMENT
Much of the buildup to Bayern's meeting with Schalke focused on Schalke goalkeeper Alexander Nübel's forthcoming switch between the sides on a free transfer at the end of this season. The former Schalke captain was absent Saturday, serving the last game in a four-game ban for a dangerous high challenge on Eintracht Frankfurt's Mijat Gacinovic on Dec. 15.
Robert Lewandowski got Bayern off to a flying start in the sixth minute when reserve goalkeeper Markus Schubert failed to deal with Thomas Müller's cross. The ball fell to Ivan Perisic, who set up Lewandowski.
Both Müller and Lewandowski had goals ruled out for offside, but the flag stayed down when Müller nipped in to score from close range in first-half injury time. It was the winger's 100th goal in a competitive game at home for Bayern.
Bayern resumed its onslaught after the break. Leon Goretzka scored against his former side in the 50th, eight minutes before Lewandowski set up Thiago Alcantara for 4-0.
Schubert prevented worse for the visitors, until Serge Gnabry wrapped up the scoring in the 89th.
CALM BEFORE STORM
There were just two first-half goals across five afternoon games in the Bundesliga – with Mainz drawing 1-1 at Gladbach – but that all changed with a flurry of goals right after the break.
Toure scored from almost 20 meters (yards) to put Frankfurt up against Leipzig, Christopher Antwi-Adjei struck for Paderborn at Freiburg, and Neven Subotic got his first goal for Union Berlin against Augsburg. It was the defender's first goal in the league since he scored for Borussia Dortmund in a 2-0 win over Union's city rival Hertha Berlin in May 2015.
Marcus Ingvartsen's got Union's second goal - in off the right post in the 62nd minute - but the home side was grateful to goalkeeper Rafal Gikiewicz for keeping Augsburg at bay at the end.
The Union fans cheered before the game when the referee's name was called out. Bibiana Steinhaus is the league's first, and so far only, female referee. Her first Bundesliga game as referee was in 2017.