Thomas Tuchel's side arrived in Bremen hoping to end a run of three straight draws in the Bundesliga and Andre Schurrle scored his first league goal for the club to put them ahead after just five minutes.
Werder were unbeaten in five matches going into the game and did their best to contain Dortmund until the 38th minute, when goalkeeper Jaroslav Drobny was shown a straight red card for a dangerous challenge on Marco Reus as the Germany international raced through on goal.
Despite their numerical disadvantage, Bremen levelled the match after an hour when Fin Bartels raced clear of the Dortmund defence to score, but the visitors were rewarded for their constant industry in attack when Lukas Piszczek scored their second goal after 70 minutes.
Tuchel might have been concerned about Dortmund's firepower in the absence of leading goalscorer Pierre-Emerick Aubameyang, who is on Africa Cup of Nations duty for Gabon, but the performances of Schurrle, Reus and Shinji Kagawa proved that his side are not overly reliant on the talented 27-year-old.
Reus took the earliest opportunity to play Schurrle in behind the Bremen defence and the Germany international rounded goalkeeper Drobny before finding the net.
Schurrle almost doubled Dortmund's lead when he connected with a Kagawa cross after 10 minutes but Drobny made a fingertip save as Bremen struggled to contain the visitors.
Bremen lost their top goalscorer when Serge Gnabry was substituted after just 25 minutes and they were denied an equaliser when Niklas Moisander blazed an effort over after Thomas Delaney's shot was saved.
Disaster struck for Bremen after 38 minutes with a rash decision from Drobny, who – sensing he was going to concede - committed a professional foul to stop Reus on his seemingly clear path to goal and was shown a straight red card.
Clemens Fritz hit the crossbar with a brilliant solo effort just before the break, but Dortmund cleared their lines and the home side were left with a mountain to climb in the second half.
Substitute goalkeeper Felix Wiedwald could only stand and watch as Gonzalo Castro curled a free-kick just wide of his goal early in the second half and Dortmund began to dominate the game.
Kagawa's throughball created a great chance for Reus to make it 2-0 but Wiedwald saved with his feet and moments later Bremen were level.
Fritz won an aerial battle and headed the ball to Bartels, who outpaced Sokratis Papastathopoulos and Matthias Ginter before drilling a low shot into the corner of the net past Roman Weidenfeller.
It was a brave fightback by the hosts but parity lasted just 12 minutes before Dortmund substitute Raphael Guerreiro lobbed a pass into the penalty area and Piszczek deftly poked it beyond Wiedwald to make it 2-1.
Christian Pulisic should have put the game out of Bremen's reach when he met Erik Durm's cross with a poorly aimed diving header but Dortmund were not punished for his wastefulness as they ran the clock down to clinch a valuable three points.