Robert Lewandowski put Jurgen Klopp's men in front in the 26th minute before Henrikh Mkhitaryan made it two before the break.
Defender Manuel Friedrich added a third just after the break before Mkhitaryan netted his second.
Lewandowski then sealed Dortmund's second straight win before Levent Aycicek grabbed a consolation.
Ludovic Obraniak was handed his debut for Bremen but he was to see relatively little of the ball as Dortmund showed more hunger and a greater willingness to attack than their hosts.
They took the lead in the 26th minute when Eljero Elia lost the ball near the touchline and Marcel Schmelzer fed Lewandowski.
The Polish striker cut inside before placing his shot into the far corner for his 12th goal of the season, with Bremen goalkeeper Raphael Wolf not looking too convincing with his attempt to keep the ball out.
It was Lewandowski's first goal in five games, and there followed the first goal in eight for Mkhitaryan, who dribbled his way past one Bremen defender before deciding to have a go himself, firing just beyond the reach of Wolf who again lacked conviction.
The game was decided early in the second half with Wolf this time not to blame, but rather his defence.
Philipp Bargfrede could only flick Marco Reus' cross to the far post, where Friedrich was alone to head in his first goal for Dortmund.
Things went from bad to worse for Bremen when Mkhitaryan and Reus combined, the latter neatly putting the Armenian through with a backheel for his second and Dortmund's fourth of the game.
Substitute Martin Kobylanski tried to salvage some pride for Bremen but his shot from outside the area was saved by Roman Weidenfeller, who had managed to keep his concentration high despite an otherwise quiet day at the office.
It had been anything but quiet for Wolf, who might have wished the ground would have opened up when Lewandowski took the ball round him before slotting the ball past a defender on the line to make it 5-0.
Eighteen-year-old substitute Aycicek at least gave himself something to smile about when he scored the consolation for Bremen on his debut, just four days ahead of his birthday.