Borussia Dortmund's hopes of moving up to second in the Bundesliga were dashed as they fell to a narrow defeat at Bayer Leverkusen.
The result instead sees Leverkusen go second, three points above Dortmund who remain fourth.
Moussa Diaby's low effort had given the hosts a merited early lead.
But the visitors hit back via Julian Brandt's curling effort and looked to have secured a point until Florian Wirtz scored a superb late winner.
It was no more than Leverkusen deserved, registering 13 shots on target to the visitors' three.
England internationals Jadon Sancho and Jude Bellingham were both substituted in a below-par Dortmund performance, while Norwegian forward Erling Braut Haaland also failed to make an impact on the game.