Marco Reus led the way with a brace for the visitors, who are now just five points behind Bayern after the champions were held to a goalless draw by Eintracht Frankfurt on Friday.
© Getty Images
The lead belonged to Thomas Tuchel's side in just the ninth minute as the influential Henrikh Mkhitaryan forced his way into the box before seeing Felix Wiedwald push a cross out to Marco Reus, who capitalised to fire home from close range.
Werder struggled to cope with the Dortmund attackers for much of the early stages, but Wiedwald produced a fine save to keep out Mkhitaryan as the pace of the visitors continued to cause problems.
As Werder started to grow in confidence, Viktor Skrypnyk was left frustrated when a spell of Dortmund pressure resulted in Mats Hummels delivering the perfect cross for Mkhitaryan, who headed in to silence the home fans just before the break.
Poor marking from the hosts early in the second half gifted Pierre-Emerick Aubameyang time on the ball in the middle of the box, but he was uncharacteristically wasteful with an effort which sailed over the crossbar.
Despite the pressure being put on the ball by Werder, Dortmund's attacking quarter continued to threaten as Aubameyang's latest effort forced Theodor Gebre Selassie to clear the ball off the line.
Any doubts about whether Dortmund would hold on were put to bed with 18 minutes of normal time remaining as Reus beat the offside trap before chipping over Wiedwald to extend his side's lead.