The Chelsea loanee came off the bench with 60 minutes played and was very much the hero of the hour, scoring twice in the remainder of the match to cancel out two Frankfurt equalisers.
Danny Blum thought he had snatched a point for the visitors, who headed into the game level on points with their opponents, but his 91st-minute goal was made redundant by Batshuayi's second of the evening from near enough the final kick.
Fresh on the back of penning a new long-term contract, BVB midfielder Marco Reus blasted into the side-netting from the game's first chance, but the hosts did not have to wait long to find a breakthrough.
Dortmund looked likely to add to their tally in the remainder of the first half, with Reus and Andre Schurrle both sending shots narrowly wide, and Mahmoud Dahoud saw his effort down the middle kept out.
Boateng missed from a better position moments later, with his shot deflected behind for a corner, but the Eagles managed to level things up 75 minutes in from the next big opening.
Following a strong spell of pressure, Luka Jovic was picked out from a free kick to nod past Burki and put the visitors on course for a big point against their top-four rivals.
Dortmund had other ideas, though, taking just two minutes to edge back in front through a fine Batshuayi goal following some neat interplay with Pulisic.
Batshuayi then took the wrong choice when going for goal instead of picking out one of his teammates alongside him, and Lukas Hradecky kept out Reus from the resulting corner.
Those missed chances almost came back to haunt BVB, as Danny Blum slid in to convert a Danny da Costa at the back stick, yet incredibly there was still time for Batshuayi to win it for his side.
Lukasz Piszczek flicked the ball into the box and the Belgium international was given the time and space needed to smash it home, ending his side's five-game wait for victory in a dramatic fashion.
BORUSSIA DORTMUND (4-2-3-1): Burki; Piszczek, Akanji, Toprak, Schmelzer; Castro, Dahoud (Weigl 45'); Pulisic, Reus (Sokratis 87'), Schurrle; Philipp (Batshuayi 62')
EINTRACHT FRANKFURT (3-5-2): Hradecky; Salcedo (Blum 79'), Hasebe, Abraham; Da Costa, Russ, Wolf, Boateng, Chandler; Haller (Jovic 67'), Rebic (de Guzman 45')body check tags ::