Second-placed Bayer Leverkusen lost ground on Bundesliga leaders Bayern Munich courtesy of a shock 1-0 home defeat to Eintracht Frankfurt.
Marco Russ’ 61st-minute strike proved enough to give struggling Frankfurt only their third victory in the league this season.
Frankfurt could even have added a second in injury-time, only for Joselu to see a penalty saved by Bernd Leno.
Having lost for the first time in five matches, Leverkusen remain seven points adrift of Bayern – the last team to win a Bundesliga match at the BayArena back in March – and five ahead of Borussia Dortmund.
In Sunday’s other fixture, Schalke climbed back up to sixth with a 2-0 triumph over visiting Freiburg, who have lost five in a row.
An own goal from Nicolas Hofler put Schalke, who qualified for the last 16 of the UEFA Champions League together with Leverkusen in midweek, ahead a minute before half-time.
Jens Keller’s men added a second from the penalty spot after 67 minutes, Jefferson Farfan claiming his fifth goal in as many league outings.
Freiburg remain 16th, and are now three points behind Frankfurt.