Borussia Dortmund battled to a 3-2 victory at European hopefuls Hoffenheim to close in on leaders Bayern Munich as striker Erling Haaland made it 56 goals in 57 Bundesliga games for the Ruhr valley club.
The win lifted second-placed Dortmund to 43 points, three behind Bayern, who play at Hertha Berlin on Sunday.
Dortmund, looking to make it three wins out of three league games this year, got off to a strong start and Haaland tapped in for the lead in the sixth minute from Donyell Malen's first of three goal assists.
Haaland, who had to be taken off injured in the 63rd, has scored 16 times in the league this season.
Andrej Kramaric's sensational volley in first-half stoppage time drew the hosts level but the visitors struck again in the 58th minute with Marco Reus completing a quickfire passing move with a deft finish.
Hoffenheim's afternoon took a further turn for the worse when David Raum drilled the ball into his own net attempting to clear a Malen cutback to give Dortmund a two-goal lead.
Hoffenheim, battling for a Champions League spot this season, got back into the mix when Georginio Rutter caught the defence napping to latch onto a clever Munas Dabbour chip and slot in, but they eventually ran out of time.
Hoffenheim dropped to sixth on 31 points. Bayer Leverkusen stayed in third on 35 with a 5-1 demolition of Augsburg courtesy of a Moussa Diaby hat-trick while Union Berlin climbed to fourth following their 2-1 win at Borussia Moenchengladbach.