Resurgent in the second half, Frankfurt finally found an equaliser on 75 minutes.
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 AP Photos.Michy Batshuayi scored deep in injury time for Borussia Dortmund to beat Eintracht Frankfurt 3-2 and return to third place in the Bundesliga.
- Marco Russ scored the fifth own goal in his Bundesliga career - in Bundesliga history, only two players scored more: Nikolce Noveski and Manfred Kaltz (6 each).
However, Batshuayi rescued Dortmund with another late victor in the fourth minute of stoppage time, the striker showing great composure to bring down Lukasz Piszczek's cross and lash home on the half-volley.
Pulisic had been a sub for BVB's last three league matches dating back to an 85-minute turn on February 10 versus Hamburg.
Schurrle and Reus then failed to test Lucas Hradecky with their respective efforts in the space of a minute around the midway point in the first half, while Dahoud drew the Finnish keeper into a routine save on the half-hour mark with a dipping strike from outside the box, having spun away from two markers to open up space.More news: Canada collapse before Samoa to suffer historic worse finish at Vancouver Sevens
And the visitors got the leveller their hard work deserved in the 75th minute, substitute Jovic heading home another risky De Guzman cross, with Dortmund captain Marcel Schmelzer culpable for losing his man.
However, Batshuayi thumped home the victor three minutes later. The Frankfurt goalkeeper's contract is up at the end of the season and has been linked as a replacement for the retiring Roman Weidenfeller.
"I'm happy because it's a long time since I scored", Batshuayi said.
The best chance fell to Leipzig just before half-time, Werner breaking free of the defence but failing to lob Ron-Robert Zieler in the Stuttgart goal.
The draw extends Leipzig's winless run to four league games, and leaves them four points behind the Champions League spots.
Both Mario Gomez and Daniel Ginczek headed wide for Stuttgart in the last 10 minutes, while Naby Keita and Willi Orban missed chances at the other end.