Jurgen Klopp's side played most of the game with 10 men, but was still able to overcome the top-four chasers thanks to the former Gladbach attacker
Marco Reus scored all three goals to settle the contest, which saw two players, Julian Schieber and Takashi Inui, dismissed by referee Felix Brych.
The Schwarzgelben started the game at breakneck pace, determined to notch an early goal. Within seconds, Reus had teed up Kuba, who screwed an effort high and wide, before the former Borussia Monchengladbach man forced a decent save from Kevin Trapp after being played in by Sven Bender.
Reus should really have finished his chance, but it was not long before he made amends. In the ninth minute, Mario Gotze flicked Ilkay Gundogan's ball into the 23-year-old's path, and he finished superbly to put his side into a deserved lead.
Seconds later, things got a whole lot worse for the visitors. Hummels stepped out of defense and played a lovely through ball to Reus, and the Germany international tucked the ball past Trapp to make it two.
The game had settled down into a rhythm, but the visitors were soon handed a path back into the match. Julian Schieber, handed a rare start thanks to Robert Lewandowski's suspension, picked up two harsh bookings within minutes, and became the second BVB striker to get sent off in as many weeks.
The visitors should have gained a foothold in the contest just before the break. First, Sebastian Rode sent the ball wide after being sent through by Lakic, then Inui sent a shot high and wide from a promising position.
Dortmund began the second half on the front foot, with Gotze darting inside from the left wing and firing wide, when he perhaps should have squared threaded a ball through to Reus.
BVB's set pieces were causing Frankfurt all sorts of problems, and one almost led to a goal when Neven Subotic blasted the ball goalwards after the visitors failed to clear their lines, only for the ball to strike Anderson Bamba and hit the bar.
Lakic missed another chance to give his side a path back into the match, volleying wide after good work from Olivier Occean, and it was to prove costly. Gundogan fed Gotze brilliantly, and the Germany international held the ball up well to tee up Reus, who completed his hat trick from short range.
Things went from bad to worse for the visitors soon after when Inui received his second booking, and, with the contest long over, BVB coasted to victory.