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.
Guerreiro did it better two minutes from the end, finishing a quick break to seal the three points for his team.
Union, whose keeper 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.