Dortmund's Mario Goetze made the most of a rare start by putting the visitors ahead in the 17th minute, while Hoffenheim hit the bar from a free kick with their only real chance.
However, Dortmund failed to add another goal despite being in complete control of the game and they were punished for it.
The hosts leveled when substitute Adamyan stabbed the ball home after goalkeeper Roman Buerki failed to clear in the 79th and Kramaric grabbed the winner three minutes from time.
"We had the game completely under control. We just did not use our chances," Dortmund coach Lucien Favre told reporters. "We had five, six big chances. It was easy to make the 2-0 and the 3-0. It is silly, just silly.
"We are a bit tired. Two injuries at half-time and we played too complicated. We always want to do the special thing. That costs us a lot."
It was the second consecutive game in which Dortmund gave up the lead, after being in front twice in the 3-3 draw against Leipzig on Tuesday.
Dortmund are fourth on 30 points, four points behind leaders RB Leipzig who host Augsburg on Saturday when third-placed Bayern Munich, also on 30, welcome VfL Wolfsburg and Borussia Monchengladbach in second spot on 34 visit Hertha Berlin.
The league breaks after this weekend's matches and resumes on Jan. 17.