The former Saint-Etienne striker scored twice in the first half, while Lewandowski and Jojic added second-half strikes
Pierre-Emerick Aubameyang scored twice in the first half for the home side before a penalty from Robert Lewandowski early in the second period secured the points.
The rout was completed when Milos Jojic marked his debut for Jurgen Klopp's men with a fourth.
The win moves Klopp's side to within a point of the second-placed Bayer Leverkusen, although Sami Hyypia's side will play Schalke later on Saturday.
Dortmund were unchanged following a 1-0 DFB Pokal quarter-final win at Frankfurt on Tuesday and they started brightly as Lewandowski, Nuri Sahin and Henrikh Mkhitaryan all had early chances.
All three players were unable to beat Frankfurt goalkeeper Kevin Trapp but they did claim the lead in the 10th minute, taking advantage of some terrible defending from Sebastian Jung.
Mkhitaryan robbed the full-back on the edge of the Frankfurt area and rolled a pass into Aubameyang, with the Gabon international making no mistake from close range as he side-footed past Trapp.
The hosts were in rampant form but had a slice of luck to double their lead midway through the first half.
Sahin's corner was headed towards goal by Manuel Friedrich and although Trapp did well to save, the loose ball dropped to Aubameyang and he stabbed home from three yards.
Dortmund goalkeeper Roman Weidenfeller was a mere spectator for the majority of the first half, but made a good low save to keep out a Constant Djakpa free kick on the only occasion he was called into action.
BVB extended their lead just after the break after Djakpo was adjudged to have fouled Lewandowski while challenging for a left-wing cross.
The Polish striker picked himself up and rifled home the spot kick for his 14th league goal of the season.
Frankfurt were struggling to cope with Dortmund, who saw Marcel Schmelzer's header clawed off the line by Trapp, but within a minute of coming on Jojic got his side's fourth.
Jojic, who replaced Mkhitaryan, pounced after Trapp failed to hold a Kevin Grosskreutz strike, tapping into an empty net.
Despite being beaten four times Trapp continued to do his best to keep the Dortmund forwards at bay, and he made a late stop from Lewandowski to deny the 25-year-old a second goal of the game.