Jurgen Klopp's men earned all three points despite playing with a numerical disadvantage after goalscorer Ivan Perisic was sent off early in the second half
A first-half strike by Ivan Perisic, who was sent off in the early minutes of the second period, and a goal by Patrick Owomoyela after the break was enough to lift BVB over the Green-Whites.
Werder Bremen were the more active team early in the game as Dortmund seemed content to sit back and soak up the pressure, waiting for their chance on the counter.
Still, chances were few and far between for both teams before the 20-minute mark, when a blast from distance by Claudio Pizarro sparked the match into life. Thomas Schaaf's men began to play more aggressively once BVB opened up, and went close to scoring on a couple of occasions.
Shortly after Mario Gotze saw a shot fly wide in the 24th minute, Marko Marin had a drive from 25 yards out fly wide as Bremen were tightening the grip. Moments later the home fans were wondering how the ball did not go in after a volley by Pizarro beat Roman Weidenfeller, but not Mats Hummels, who cleared the ball off the line.
Bremen went all guns blazing in the next few minutes and nearly opened the scoring shortly after the half-hour mark through Markus Rosenberg, who failed to control the ball in the box with only the goalkeeper to beat.
Dortmund had lady luck to thank in the 38th minute as a flurry of ricochets saw the ball reach Chris Lowe on the goal line, and he cleared the danger from near the right post to save his side from a certain goal.
Out of nowhere, Dortmund took the lead. A quick break saw Gotze and Robert Lewandowski charge forward with the Polish striker picking out Sven Bender. He then found Perisic, who powered a superb shot from the left side of the box past Sebastian Mielitz.
The second half could not have started worse for BVB as Perisic was sent off moments after the restart as he committed a needles foul on Sokratis Papastathopoulos and received his second yellow card.
Werder Bremen doubled their efforts and had no less than three clear-cut chance in the next 20 minutes with Pizarro, Andreas Wolf and Marin failing to score from inside the box. Lukas Schmitz even saw a shot come off after hitting the underside of the bar just before the 70-minute mark as the hosts were looking to equalise.
Moments later, however, Dortmund delivered the final blow as some poor defending by the home side allowed Hummels to find Owomoyela near the right post, and the full-back stabbed a finish in the upper corner to double BVB's lead.
The Green-Whites threw everything forward in the remaining minutes, but were ultimately denied even a consolation goal by Borussia Dortmund's water-tight defence.
Following tonight's result BVB sit second in the table, displacing Werder Bremen, who are now fourth in the standings before the remaining games of this round at the weekend.
Jurgen Klopp's men next league game is at home against Koln in eight days, while the Green-Whites travel to Augsburg in a week.