Borussia Dortmund 3 Eintracht Frankfurt 2: Substitute Batshuayi to the rescue in dramatic finale
Substitute Michy Batshuayi scored an injury-time winner as Borussia Dortmund edged fellow Champions League hopefuls Eintracht Frankfurt in a 3-2 thriller on Sunday.
Eintracht twice came from behind to seemingly claim a point at Signal Iduna Park, but Batshuayi struck the second of a personal double in stoppage-time to break the visitors' hearts.
With Eintracht hoping for an offside flag that would not come, Batshuayi lashed home to end a four-game winless run in all competitions for Dortmund.
The visitors had deserved a draw, Niko Kovac's men - who started the day level on points with Dortmund - levelling twice thanks to goals from Luka Jovic and Danny Blum.
But it was not to be as substitute Batshuayi sent Dortmund back up to third in the Bundesliga, boosting their Champions League qualification hopes.
Dortmund suffered a shock home loss to RB Salzburg in the Europa League on Thursday but bounced back in stunning fashion to extend Peter Stoger's unbeaten league run to 11 league matches.
Andre Schurrle somehow headed Christian Pulisic's cross wide in the 10th minute as Dortmund dominated the opening exchanges.
But they were soon in front regardless, Mahmoud Dahoud sending Pulisic clear down the right to get Dortmund round the back of Eintracht again.
The teenage winger's cross was low this time and defender Marco Russ was only able to turn the ball in for his fifth Bundesliga own goal, Marco Reus having been lurking for a back-post finish.
Reus, who had scored Dortmund's three previous Bundesliga goals and signed a long-term contract this week, was proving lively while Dahoud created an opening for himself with some clever play, only to fire at Lukas Hradecky.
Kevin-Prince Boateng almost equalised with a superb piece of invention two minutes after the interval, flicking a backheel at goal after a corner from half-time substitute Jonathan de Guzman caused chaos, but Roman Burki got down sharply to save.
Pulisic sent a curler wide in the 56th minute and Timothy Chandler and Boateng blazed over at the other end as both sides traded blows.
Eintracht had lost on their last six visits to Dortmund but they continued to set the second-half pace, De Guzman sending an acrobatic strike sailing over the crossbar.
And the visitors got the leveller their hard work deserved in the 75th minute, substitute Jovic heading home another dangerous De Guzman cross, with Dortmund captain Marcel Schmelzer culpable for losing his man.
But Eintracht switched off, Pulisic and Batshuayi linking up to stunning effect and the on-loan striker smashing in to apparently settle the match.
Dortmund had not counted on Eintracht's resilience, though, and they levelled again in the first minute of added time, Blum tapping in at the back post from a Danny da Costa cross.
The scoring was not over though, Batshuayi leaving his mark on a breathless contest by hammering in an unstoppable 94th-minute finish to claim all three points for his side.