Pierre-Emerick Aubameyang's 100th Borussia Dortmund goal salvaged a 2-2 draw for Thomas Tuchel's 10 men in Friday's pulsating Bundesliga encounter at Hoffenheim.
Dortmund found themselves in major trouble when Marco Reus received his marching orders late in the first half with the visitors already 2-1 down, but they fought back after the break and Aubameyang eventually rescued a point after a sublime assist from Ousmane Dembele, who was later stretchered off after an innocuous collision with Benjamin Hubner.
Dortmund had little reason for optimism heading into the encounter, having won just two of their seven away league games this season, and they were dealt an early blow when Mark Uth opened the scoring in the third minute after Roman Weidenfeller's mistake.
Mario Gotze levelled shortly afterwards, only for Sandro Wagner to restore Hoffenheim's lead from a 20th-minute corner.
The hosts then received another boost when Reus was dismissed, but Aubameyang did what he does best, his 16th league goal of 2016-17 coming just after Wagner had hit the post at the other end.
Although Julian Nagelsmann's side will be disappointed not to add three points to their tally, they remain one of just two teams in Europe's top five leagues, along with Real Madrid, that are still unbeaten this season.
Hoffenheim made a flying start, Weidenfeller’s hesitance allowing Uth to collect Hubner's ball, round the keeper and coolly slot home into the empty net.
Dortmund immediately went in search of an equaliser and Gotze levelled in the 11th minute after Marcel Schmelzer and Aubameyang had failed to do so.
Dembele embarked on a strong run and poked the ball into the path of Gotze, who beat Oliver Baumann with a calm finish into the bottom-right corner.
The hosts were not perturbed by Gotze's strike, though, and restored their lead when Hubner headed Sebastian Rudy's corner goalwards, where Wagner was on hand to get enough of a glancing touch to defeat Weidenfeller.
Things got even worse for Dortmund five minutes before half-time when Reus received his second booking for bringing down Nadiem Amiri to stop a dangerous Hoffenheim break, having previously gone into the book for a reckless challenge on Niklas Sule.
Hoffenheim could have made the game safe early in the second half when Pavel Kaderabek set up Wagner with a low cross, the striker somehow managing to hit the upright from close range.
And Dortmund instantly made the home side pay for that miss as Aubameyang netted another equaliser from the subsequent counter. The impressive Dembele set up the Gabon international with a clever throughball and he kept his composure to lift the ball over Baumann for his milestone goal.
The visitors' chances of perhaps taking all three points were dealt a blow when Dembele was stretchered off, Emre Mor taking his place.
Hoffenheim threatened via Rudy and Jeremy Toljan in the remainder of the game, but the Dortmund defence held firm to record a hard-fought draw, with Weidenfeller making up for his unconvincing goalkeeping for the opener when he denied Andrej Kramaric in the dying minutes.
Key Opta stats:
- For the first time in their Bundesliga history Hoffenheim started with 10 German players.
- Mario Gotze scored his first Bundesliga goal for Borussia Dortmund since his return from Bayern Munich.
- Pierre-Emerick Aubameyang is the first player in Bundesliga history with 16 or more goals after 15 matches in two seasons in a row.