Goals from Ousmane Dembele and Pierre-Emerick Aubameyang either side of an Ante Rebic equaliser saw Dortmund end a run of three consecutive defeats in the final of the competition to lift the trophy for the fourth time in their history.
Having reached the final for a fourth consecutive season it was perhaps no surprise to see Dortmund settle into the game more quickly than their opponents, who were appearing in their first DFB-Pokal showpiece since 2006.
Indeed, it took just eight minutes for Dortmund to take the lead on the night when Dembele burst forward down the right channel before cutting inside and curling the ball into the top corner to complete a fine solo effort.
It was another sign of the 20-year-old's prodigious talent, but any Frankfurt fears that it may be a long evening soon faded and the four-time winners worked their way back into the match as the first half wore on.
Niko Kovac's side were level shortly before the half-hour mark when Mijat Gacinovic won possession inside the Dortmund half before playing the ball through for Rebic, who kept his composure to stroke the ball beyond the keeper.
Frankfurt looked the most likely to go into half time in the lead as they continued to apply the pressure on the favourites, and they came within inches of a second six minutes before the interval when Haris Seferovic struck the foot of the post at the end of a flowing team move.
Hopes of a first DFB-Pokal crown since 1988 would have been high amongst Frankfurt fans at the interval, but Dortmund emerged from the break on top and were close to regaining their advantage shortly after the hour mark when Aubameyang's effort was cleared off the line and against the woodwork by a defender.
Aubameyang would not have to wait long to get his name on the scoresheet, though, as Dortmund were awarded a penalty moments later when goalkeeper Lukas Hradecky brought down Christian Pulisic inside the area.
The referee had little option but to point to the spot, and the Gabon international showcased his immense confidence by producing a Panenka-style penalty to notch his 40th goal of the season in what could be his final game for the club following reports that he has handed in a transfer request.
Aubameyang came close to putting the match beyond all doubt with five minutes of normal time remaining when he shrugged off the challenge of a defender before trying to pick out the top corner, but his effort clipped the outside of the post on its way behind.
It did not prove to be a costly miss, though, as Dortmund held out for the victory which ends their five-year wait for silverware since Jurgen Klopp steered them to the league and cup double in 2012.