Borussia Dortmund's Marco Reus and Raphael Guerreiro scored a goal apiece to beat visitors Union Berlin 2-0 on Wednesday and maintain their outside chances of securing a spot in next season's Champions League.
The hosts were awarded a controversial penalty after Reus went down in the box and although Erling Haaland's effort was saved, Reus stabbed home the rebound in the 27th minute.
The Dortmund captain almost set up a second goal when he sent Giovanni Reyna through but the American's chip sailed wide.
Opinion: Why Bellingham’s best destination would be Real Madrid
Guerreiro did it better two minutes from the end, finishing a quick break to seal the three points for his team.
Union, whose goalkeeper Andreas Luthe made a series of fine saves, twice hit the woodwork, including from a superbly taken Max Kruse free-kick in the 66th which diving Dortmund 'keeper Marwin Hitz palmed on to the post.
Dortmund moved to 52 points, four behind fourth-placed Eintracht Frankfurt, with the top four teams qualifying for next season's Champions League group stage.
VfL Wolfsburg, who face Dortmund on Saturday, tightened their hold on third place with a 3-1 win at VfB Stuttgart that lifted the Wolves to 57 points, one ahead of Eintracht and five clear of Dortmund.
Adam Szalai's early goal earned Mainz a 1-0 win over Werder Bremen, with the win lifting them above their fellow strugglers in the table. Mainz are on 31 points, one ahead of Bremen.
Hoffenheim ran out 3-2 winners over Borussia Monchengladbach to move on to 35 points and end any lingering relegation worries.
Real Madrid weigh up £174m Haaland release clause swoop - Paper Round
Champions League
Bellingham on target as Dortmund breeze past struggling Sevilla