Frankfurt were soundly beaten in four of their five meetings with fellow top-eight sides before the winter break, so they would have been fearing the worst when Dortmund spread the ball out to Julian Ryerson on the right, and his low cross was poked home at the near post by Maximilian Beier after 10 minutes.
However, the hosts responded well to going behind, and after Can Uzun and Ansgar Knauff both forced Gregor Kobel into action, a Serhou Guirassy foul on Robin Koch inside the area gave the referee no choice but to award a penalty.
Uzun sent Kobel the wrong way for his first goal since September, and Eintracht were level midway through the half.
But another goal brought about another momentum swing, and Dortmund were soon causing problems for Kaua Santos, who had to scramble away a Julian Brandt chance from a corner, before the home goalkeeper reacted smartly to a firm Nico Schlotterbeck header.
Die Borussen were ultimately unable to regain the lead before half-time, as Brandt ballooned the last chance of the half over following a move that deserved better.

Not being ahead at the break for just the second time in eight league games spelled trouble for Dortmund, as seven of the eight away goals they conceded before tonight came in second halves, and when Younes Ebnoutalib sent a header narrowly wide and Kobel kept out a stinging Knauff effort, they were fortunate not to see that tally grow.
Yet again, the home side’s pressure didn’t last, and before the hour mark, a Marcel Sabitzer strike needed a vital Arthur Theate block, before Waldemar Anton headed a golden chance straight at Santos.
The Frankfurt hero minutes earlier, Theate was guilty of a poor clearance minutes later, presenting the ball to Felix Nmecha, who took aim from outside the area and fired a shot that took a huge deflection off Hugo Larsson, taking the ball out of Santos’ reach en route to the bottom corner.
However, Niko Kovac’s side were ahead for just three minutes, as their defence was unlocked by a simple Arnaud Kalimuendo through ball, which sent Ebnoutalib bearing down on goal to slot past Kobel.
Late on, it looked like the last chance to win the game would come in the Frankfurt box, as Schlotterbeck headed a corner onto the bar before Fabio Silva’s acrobatic rebound went wide,
The hosts then went up the other end to score what looked like the winner in added time. The visitors failed to clear, and a loose ball fell to Dortmund old boy Mahmoud Dahoud, whose first-time hit flew through the crowd and past Kobel.
However, in the 96th minute, a hopeful Sabitzer cross was taken down by Chukwuemeka, who steered it past Santos for 3-3 and rounded off the scoring on a crazy night at Deutsche Bank Park.
Flashscore Man of the Match: Maximilian Beier (Borussia Dortmund)
