Erling Haaland struck ten minutes from time to earn Borussia Dortmund a point against Hoffenheim as their dipping form continued at Signal Iduna Park.
Jadon Sancho fired Borussia into a 1-0 lead in the 24th minute, only for Munas Dabbur and Ihlas Bebou to turn what was an open yet disjointed game on its head.
Two Haaland goals were disallowed for offside by VAR, but the Norwegian's third goal with 10 minutes to go was allowed to stand and rescued a 2-2 draw.
Edin Terzic made only one change to the side that had lost 2-1 in Freiburg last weekend, with Jude Bellingham replacing Marco Reus, whilst Hoffenheim were without goal-getter Andrej Kramaric.
BVB made the brighter start to the game, with Raphael Guerreiro playing Haaland clean through in the 10th minute – only for Hoffenheim shot-stopper Oliver Baumann to make a great block with his foot.
TSG also created chances of their own; Marwin Hitz made an equally impressive save in the 18th minute to deny Bebou, who had another chance to open the scoring six minutes later but fired narrowly wide of the mark.
Sancho's streak continues
Seconds later, BVB struck on the counter-attack. Guerreiro played a through-ball to Sancho and, with Diadie Samassékou appealing for offside, the Englishman kept his cool in front of Baumann, slotting home from twelve yards to make it 1-0.
Haaland then had a goal correctly disallowed for offside five minutes later, before the Norwegian almost scored another after Bellingham had won the ball back with his high press, but Stefan Posch made a last-ditch intervention in the box.
TSG fight back
Once again, failure to find the net at one end was punished by a goal at the other, with Dabbur slotting home Sebastian Rudy's pass to level the scores at 1-1 on 31 minutes.
In the build-up on that occasion and several others, the BVB defence struggled to impose themselves on the game and unfortunately for them, that remained the case after the break too.
Hitz did well to tip Dabbur's header onto the bar in the 50th minute, but couldn't do much to prevent the visitors going in front from the resulting corner. TSG played it short before Rudy crossed into the middle and Bebou beat Hitz to the ball to stab home.
Haaland had another goal ruled out for offside seven minutes later. Amid a scramble in the box, Mats Hummels poked the ball through to Thomas Delaney whose shot rebounded off the post and was tapped in by the striker - but Delaney was narrowly offside. The question was whether the ball had been played by an opponent.
BVB were unable to build up proper pressure, but levelled in the 80th minute thanks to individual play from Haaland. The young striker pounced a loose pass from Rudy to go through on goal and fire beyond Baumann.
There were 10 minutes plus plenty of time added-on to seal what would have been three fortunate points, but the hosts never really threatened thereafter.