Jadon Sancho scored one and made another as Borussia Dortmund won for the first time in six games by beating Bayer Leverkusen 3-2.
Leverkusen forward Kevin Volland cancelled out Dan-Axel Zagadou's first-half opener but England winger Sancho restored Dortmund's advantage with his ninth goal of the season a minute later and they led 2-1 at the interval.
Mario Gotze drilled home Dortmund's third on the hour-mark and although Leverkusen reduced the deficit again through Jonathan Tah's header, Lucien Favre's side held on to secure their first league win in four matches.
The victory lifts leaders Dortmund three points clear of closest rivals Bayern Munich, who had climbed level on Saturday after their 1-0 home win against Hertha Berlin.
Dortmund, knocked out of the German Cup on penalties by Werder Bremen and beaten 3-0 at Wembley by Tottenham in the Champions League earlier this month, had drawn their previous three league games.
Eintracht Frankfurt extended their unbeaten league run to six matches with a 3-0 win at struggling Hannover and leapfrogged Leverkusen into sixth place.
Frankfurt were kept at bay in the first period due to some wayward finishing and Hannover goalkeeper Michael Esser, but broke the deadlock nine minutes into the second half through Ante Rebic.
Luka Jovic headed home Frankfurt's second shortly after the hour-mark and Filip Kostic lashed home their third in the last minute following a swift counter-attack.
Hannover, who have lost six of their last seven league games, remain second from bottom.