An Aaron Hunt penalty in the first minute and a Kevin de Bruyne effort in the 24th minute appeared to have put Bremen on the way to three points, which would have been a decisive step towards safety.
However, two goals in the last five minutes from Sven Schipplock earned Hoffenheim a point and took them to within two of safety, leaving their opponents just three above the relegation zone.
The Weserstadion was full as the home fans came out in force to make their presence felt for a crucial relegation battle.
Their team responded and were given the chance to go ahead immediately when Nils Petersen sent the ball to Hunt, who was fouled right on the edge of the area by David Abraham, and the referee pointed to the penalty spot.
Hunt himself stepped up to convert the spot-kick and give Bremen an ideal start to the game.
The home fans continued to get behind their team, but they were almost silenced in the 19th minute when Sejad Salihovic's corner was headed on to the top of the crossbar by Abraham.
Just five minutes later, Bremen doubled their advantage when Jannik Vestergaard made a mess of his clearance, leaving the ball for Petersen. He cut it back from the right to De Bruyne, whose right-footed shot nestled in the far corner of Koen Casteels' goal.
Hoffenheim refused to throw in the towel, though, and Roberto Firmino went close to bringing them back into the game, but he missed when one-on-one with Sebastian Mielitz in the 28th minute.
Clemens Fritz could have wrapped things up for Bremen three minutes into the second half, but he sent his free header wide of the goal.
The game opened up as Hoffenheim threw caution to the wind and attacked with more insistence.
Tobias Weis' shot flew just wide of the far post on the hour mark before De Bruyne only found the side-netting with a 65th-minute effort.
Hoffenheim continued to probe and finally made the breakthrough in the 85th minute.
Salihovic set up Schipplock, who skipped past Sokratis Papastathopoulos before shooting high into Mielitz's goal.
And there was more drama to come as Schipplock grabbed an equaliser in stoppage time.
Mielitz could only push Andreas Ludwig's header to one side and Schipplock was on hand to break Bremen hearts with the leveller.