Frankfurt made the bright start after Lucas Torro found Filip Kostic to take a shot at Roman Burki on the edge of the area in six minutes.
Eintracht made it difficult for the home side getting any openings in the last third, keeping it firmly tight in defence.
Their resilience was finally broken thanks to Abdou Diallo poking the ball over the line from close range just before halftime.
In the second half, Dortumund made the first change in the opening minutes with Jacob Larsen coming making way for Jadon Sancho.
Later, the second followed from the Black and Yellow army, with the arrival of Paco Alcacer for Philipp in a straight swap.
The Eagles threatened to get the equaliser, but Jonathan de Guzman’s shot from outside the box missed the target by a few inches on 66 minutes.
It was to be the turn of Frankfurt with their changes, as De Guzman replaced Luka Jovic and Gelson Fernandes taking the spot of Marco Fabian in a double switch.
The side of Adi Hutter levelled the scores in the 68th minute , as Sebastien Holler propped up to lash home into the bottom corner.
That lasted barely few minutes, as Dortmund reclaimed the lead with a finish from Marius Wolf from close parameters.
Dortmund thought to have made it three, but Jovic was correctly so ruled to be in an offside position before firing home on 73 minutes.
In the final sector, Frankfurt asked a few questions of the highly-rated visitors, with the aim to draw level once.
Alcacer made sure of the points and table-topping standing with a nice finish in added time.