Borussia Dortmund battled to a 3-2 victory at European hopefuls Hoffenheim on Saturday to close in on leaders Bayern Munich as striker Erling Haaland made it 56 goals in 57 Bundesliga games for the Ruhr valley club.
Efficient Dortmund had only three shots on goal compared to Hoffenheim's 14 but it was enough for the win that lifted them to 43 points, three behind Bayern, who face Hertha in Berlin on Sunday.
"Obviously this was a win for efficiency and we are really happy to have won this important game," said Dortmund captain Marco Reus, who scored their second goal.
"But we were too passive and Hoffenheim are a very skilled team. We did not put enough pressure on them at times."
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. Dortmund defender Manuel Akanji was also injured in the 83rd minute.
Andrej Kramaric's sensational volley in first half stoppage time drew the hosts level but the visitors struck again in the 58th minute with 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 Georgionio 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.