Berlin: Sergis Adamyan and Andrej Kramaric scored late goals as Hoffenheim fought back for a 2-1 win to stop Borussia Dortmund from moving within a point of Bundesliga leaders RB Leipzig on Friday.
Adamyan and Kramaric responded following the break after Mario Goetze, who was making his first start in over a month, opened the scoring in the first half.
Dortmund remain in fourth, four points behind Leipzig and second-placed Borussia Moenchengladbach, while Hoffenheim jump to sixth with the German top flight heading into a month-long winter break after this weekend.
"I'm not going to die from this game now. But every defeat hurts," Dortmund's Julian Brandt told broadcaster ZDF.
"If you have as many chances as that in the second half, it's hard to digest," he added.
With club captain Marco Reus ruled out until January with a muscular problem Dortmund coach Lucien Favre named Goetze in attack.
The hosts made four changes from the midweek victory at Union Berlin, a first win in five games, as Norway's Havard Nordtveit made his first start for the club in more than a year at centre-back.
Dortmund led after 16 minutes of play as Achraf Hakimi found acres of space down the right wing.
The Morocco wing-back, on loan from Real Madrid, pulled back a low cross into the box and Goetze tapped home from short range despite Sebastian Rudy's goal-line efforts.
With six minutes left of the half Thorgan Hazard was denied a chance to double Dortmund's lead following a superb Oliver Baumann save.
Despite Dortmund dominating the game and having 10 shots on goal, Hoffenheim were level with 11 minutes to play.
Manuel Akanji made a messy attempt at a clearance and Armenia winger Adamyan equalised.
The unexpected comeback was complete when Kramaric beat Roman Buerki with a spinning header four minutes from time.
On Saturday, Leipzig host Augsburg and third-placed Bayern welcome Wolfsburg, before Gladbach head to a rejuvenated Hertha Berlin.