Fourth-bottom Stuttgart took the lead in the 13th minute through Hungary international Tamas Hajnal as the visitors attempted to pull away from St Pauli, whose game against Schalke was abandoned last night due to crowd trouble.
Hajnal lashed into the top-right corner from point-blank range but Stuttgart showed no ambition to build on their goal after taking an early lead, instead inviting pressure onto their troubled defence.
The goal seemed to spur a lacklustre Bremen side into life and both Marko Marin and Wesley had attempts saved by Sven Ulreich before Frings' long-range effort flew past him from outside the box after a cleverly worked corner in the 34th minute.
Bremen striker Denni Avdic saw an effort blocked as the first half was drawing to a close, and the Swede then hit the bar with a header from the resulting corner.
Both Sandro Wagner and Per Mertesacker had good headed opportunities just after the restart as the home side really started to press in search of a win that would have seen them move into the top 10.
A mixture of substitutions and yellow cards then disrupted the flow of the game, but Bremen still had the advantage and Petri Pasanen just whistled a header past the post after a string of corners.
Wagner then had two fine opportunities in the closing stages but Ulreich managed to keep out both attempts before Mikael Silvestre also passed up a late chance to snatch all three points for the hosts.