Match ends, SV Werder Bremen 1, Borussia Dortmund 3.
Marco Reus scored twice as Borussia Dortmund beat Werder Bremen and closed the gap on Bundesliga leaders Bayern Munich to five points.
Second-placed Dortmund moved on to 26 points, after Bayern dropped their first points this term with Friday's 0-0 draw at Eintracht Frankfurt.
Reus smashed in the opener in the ninth minute before Anthony Ujah slotted home the equaliser for Bremen.
Henrikh Mkhitaryan headed in and Reus sealed victory with an angled strike.
"In football you have to be patient and believe in yourself," said Germany midfielder Reus, who had struggled for form initially this season before a fractured toe ruled him out for a few weeks.
"But I have great team-mates who helped me. I always believed in myself and continued to work hard."
Borussia Moenchengladbach, who lost their opening five Bundesliga matches this season, recorded their sixth straight league win with a 4-1 success at Hertha Berlin. Gladbach are now up into fourth having been bottom a month ago.
Wolfsburg moved above Schalke into third after needing a clear offside goal to take the lead against Bayer Leverkusen in their 2-1 win.
Vieirinha was three metres ahead of the defenders when Andre Schurrle slipped the ball through. The linesman raised his flag but the referee indicated play on, assuming the ball had come from the feet of a defender, allowing Nicklas Bendtner to drill in from the Portuguese's assist.
Javier Hernandez equalised with a header before summer-signing Julian Draxler tapped in the winner 13 minutes from time.
Schalke, in fourth, could only manage a 1-1 draw against promoted Ingolstadt. They are six points behind Dortmund, having won just one of their last four matches.
- 22BartelsSubstituted forPizarroat 83'minutes
- 23Gebre Selassie
- 4GálvezBooked at 64mins
- 37SternbergBooked at 55mins
- 8FritzBooked at 60minsSubstituted forFrödeat 82'minutes
- 27GrillitschSubstituted forLorenzenat 77'minutes
- 3Park Joo-HoSubstituted forSchmelzerat 76'minutes
- 8GündoganSubstituted forPiszczekat 85'minutes
- 11ReusSubstituted forCastroat 77'minutes
- Tobias Welz
- Shots on Target
Second Half ends, SV Werder Bremen 1, Borussia Dortmund 3.
Foul by Henrikh Mkhitaryan (Borussia Dortmund).
Lukas Fröde (SV Werder Bremen) wins a free kick in the attacking half.
Gonzalo Castro (Borussia Dortmund) wins a free kick on the left wing.
Foul by Theodor Gebre Selassie (SV Werder Bremen).
Offside, SV Werder Bremen. Janek Sternberg tries a through ball, but Anthony Ujah is caught offside.
Foul by Shinji Kagawa (Borussia Dortmund).
Theodor Gebre Selassie (SV Werder Bremen) wins a free kick on the right wing.
Corner, Borussia Dortmund. Conceded by Jannik Vestergaard.
Offside, Borussia Dortmund. Henrikh Mkhitaryan tries a through ball, but Pierre-Emerick Aubameyang is caught offside.
Attempt blocked. Henrikh Mkhitaryan (Borussia Dortmund) right footed shot from outside the box is blocked.
Corner, Borussia Dortmund. Conceded by Alejandro Gálvez.
Foul by Gonzalo Castro (Borussia Dortmund).
Melvyn Lorenzen (SV Werder Bremen) wins a free kick in the defensive half.
Matthias Ginter (Borussia Dortmund) wins a free kick on the right wing.
Foul by Janek Sternberg (SV Werder Bremen).
Offside, Borussia Dortmund. Roman Bürki tries a through ball, but Henrikh Mkhitaryan is caught offside.
Substitution, Borussia Dortmund. Lukasz Piszczek replaces Ilkay Gündogan.
Substitution, SV Werder Bremen. Claudio Pizarro replaces Fin Bartels.