Marco Reus single-handedly dismantled the Eagles with a hat-trick for the defending German champions, who move back to within 15 points of the runaway league leaders Bayern Munich.
The Germany international netted two goals in as many first-half minutes before adding a third midway through the second half after Julian Schieber had been given his marching orders.
Frankfurt also ended the game with 10 men after Takashi Inui saw red in the 74th minute, compounding a disappointing evening for Armin Veh's men.
Dortmund were quick out of the blocks with Reus setting up Jakub Blaszczykowski for an early chance which the Poland international failed to take.
In the eighth minute, Reus put the Westphalians in front thanks to a fine pass from Mario Gotze to pick him out inside the penalty area.
The Westfalenstadion was still celebrating that goal when Reus made it two, slotting the ball inside the right-hand post with Mats Hummels the provider.
Dortmund did not appear to have learnt from the reverse fixture, which they also led 2-0 before only drawing 3-3, and they lifted their foot off the accelerator.
They then lost Schieber to two yellow cards in just four minutes as he followed the example of the man he replaced, the suspended Robert Lewandowski, by heading for an early bath on the half-hour mark.
The red card seemed to drive a point home for Dortmund, who raised their guard in preparation for a Frankfurt onslaught.
That did not materialise, however, and Gotze and Reus combined once again in the 65th minute to put the result beyond doubt.
Frankfurt then lost Inui to a second yellow card as he tugged Hummels' shirt, and Veh realised there was no chance of a recovery as he replaced Srdjan Lakic and Sebastian Rode, giving Karim Matmour and Stefano Celozzi a rare piece of the action.