Fin Bartels, Levin Öztunali, Claudio Pizarro, Anthony Ujah and an own goal by Stuttgart's Federico Barba provided the goals for the Northerners' important win.
Fast start for both sides
Ten minutes into the game, it was the hosts who took the lead. After a free-kick by Stuttgart's goalkeeper Przemislaw Tyton, Bremen's Clemens Fritz headed the ball to Pizarro who passed it to Bartels. The striker stopped the ball with his chest and shot it in off the post, with Tyton beaten; a massive early goal for the Weserstadion outfit.
In the 18th minute Filip Kostic had Stuttgart's first real chance, when a cross from the Serbian hit the woodwork.
After 26 minutes, Stuttgart managed to score the equaliser. Lukas Rupp played the ball to Alexandru Maxim, who entered the box and passed back to Daniel Didavi. His shot was deflected by Jannik Vestergaard, and left Felix Wiedwald without a chance to stop the ball. Werder's clean sheet dream was made to wait once again.
But only seven minutes later, it was Stuttgart's defender Barba who scored an own goal after a Bremen corner. The Werderaner again took the lead.
Werder edge ahead
In the 37th minute, Martin Harnik had an excellent opening for his side but his header after a good cross went just wide.
Then it was Levin Öztunali who made it 3-1 after very poor defending from the Cannstätter in their own box. Just before half-time, it was again Martin Harnik who had a chance to get one back, but his shot did not cause any problems for Felix Wiedwald.
False hope for Stuttgart as Werder run rampant
After half-time, it took only seven minutes for Stuttgart to score; Barba, who scored the own goal in the first half, made it 2-3 after a good cross by Maxim.
But after that goal, Bremen totally controlled the game. Claudio Pizarro scored the 4-2 after a lovely assist from Zlatko Junuzovic, and had the chance to make it 5-2 just moments later, but Stuttgart's goalkeeper Tyton won the one-on-one duel and cleared it for a corner.
In the 80th minute, however, Öztunali passed the ball to Bartels and the 29-year-old had no problems of putting it into the goal to add their fifth.
As if that was not enough, Anthony Ujah, who had just been been brought on for Claudio Pizarro, hammered the final nail in Stuttgart's coffin.
After that loss, the Swabians are in 17th place with two matches to play; against 1. FSV Mainz 05 at home and VfL Wolfsburg away. Bremen find themselves in 15th with 34 points, one more than Stuttgart. On the last two matchdays, the Werderaner face 1. FC Köln in the Müngersdorfer Stadion and Eintracht Frankfurt at home.