Erling Haaland scored a dramatic stoppage-time winner to secure Borussia Dortmund a 1-0 victory at Fortuna Dusseldorf that keeps their slim hopes of usurping Bundesliga leaders Bayern Munich alive.
Lucien Favre's men looked to be heading to a limp draw after Raphael Guerreiro's second-half strike was disallowed for handball, with Fortuna hitting the post twice, but substitute Haaland headed home to ensure Bayern cannot go nine points clear with three matches left later on Saturday.
Dortmund had been the superior side in the first half, with Jadon Sancho crafting several opportunities – but without Haaland on the pitch after recent struggles with a knee problem, BVB were guilty of spurning some fine chances.
Haaland was introduced in the second half and had a role in Guerreiro finding the net, only for his effort to be wiped out by VAR.
After Fortuna twice went desperately close to stealing a win for themselves, which would have given Bayern a chance of clinching the title on the same day, Haaland sent a wonderful header into the net with one of the last actions of the match.
Dortmund's first opportunity should have brought them the lead in the 17th minute but, after a rapid break following a Fortuna corner, Achraf Hakimi shot straight at Florian Kastenmeier when one-on-one.
Sancho, who released Hakimi for his chance, soon set up Julian Brandt for another but this time a brilliant last-ditch tackle from Andre Hoffmann denied the Germany international.
The same pair linked up again just before the half-hour, with Kastenmeier managing to get in the way of Brandt's shot to ensure the score remained level at the break.
Dortmund's frustrations after half-time led to Haaland's introduction and he soon seemed to make a decisive impact, his shot taking a deflection and dropping to Guerreiro to drill home, but the ball hit the top of the full-back's arm in the build-up and a VAR check saw it ruled out.
That appeared to jolt Fortuna into life and they were twice unfortunate not to go in front, with Steven Skrzybski hitting the left-hand post from distance in the 82nd minute, before then being denied by the other upright in stoppage time.
Dortmund capitalised, Haaland guiding Manuel Akanji's cross beyond the reach of Kastenmeier to put BVB back to within four points, at least for now, of Bayern.
What does it mean? Pressure back on Bayern, top-four spot almost secure for BVB
With Bayern facing a potentially tricky match against top-four hopefuls Borussia Monchengladbach without key men Robert Lewandowski and Thomas Muller, there's every chance Die Roten could drop points.
While that would certainly help Dortmund, Favre's side will also be guaranteed a place in the top four if either Gladbach or Bayer Leverkusen lose this weekend.
As for Dusseldorf, they stay 16th and three points adrift of guaranteed safety – though one of the two teams above them will drop points on Sunday as Mainz and Augsburg face each other.
Sancho tries to spark Dortmund
Dortmund were below their best in Dusseldorf, though a lot of their better passages of play involved Sancho in some capacity. The England international created several openings in the first half, though he could be accused of fading in the second period.
Brandt fails to make the difference
Brandt had a couple of opportunities to break the deadlock in the first half, but he failed, while he also ended the match without a single key pass. While he might point out he was shifted to a deeper position after Haaland came on, a player of his talents arguably should have been more decisive.
Dortmund return home on Wednesday as they host Mainz at Signal Iduna Park. Dusseldorf face another tricky test, as they go to RB Leipzig the same day.