With leader and defending champion Bayern Munich suffering a shock defeat to Borussia Moenchengladbach on Saturday (AEDT), Dortmund would have sensed an opportunity to close what was a widening gap to the top.
And while the visitors attacked from the off – Thomas Meunier saw a shot tipped on to the post by Kevin Trapp, who later denied Erling Haaland – the game turned on its head soon after.
Filip Kostic, who has made a habit of assisting goals for Eintracht this season, turned provider once again when he whipped a free-kick into the danger area was directed into the corner of the net by Rafael Borre.
Kobel denied Kostic a second moments later, but Eintracht doubled its lead in the 24th minute with Borre taking full advantage of Marco Reus's failed attempt to clear his lines.
A pulsating first half ended with Evan N’Dicka and Donyell Malen hitting the woodwork at either end.
Oliver Glasner's team continued to push after the restart at Deutsche Bank Park. After a nutmeg on on Emre Can, Jesper Lindstrom – scorer of four goals in his previous six games – fired at Kobel when 3-0 looked the more likely outcome.
Somehow Dortmund kept its composure, and continued to dominate possession. Julian Brandt and Haaland both had decent efforts before the visitors finally managed to pull a goal back when substitute Thorgan Hazard latched onto Haaland's through ball and slotted home with 19 minutes remaining.
Marco Rose's men continued to push and deservedly drew level with just two minutes left to play, Bellingham heading in from Meunier's centre.
While most sides would have settled for the draw, Dortmund again surged forward in the dying moments. Haaland was looking to bust through a tiring home defence when the ball broke to Mahmoud Dahoud on the edge of the box, and he calmly steered a delicious right-foot shot into the Frankfurt goal to complete the most dramatic of turnarounds, cutting the gap to Bayern to six points.