Gladbach started the match slowly but that changed in the 13th minute when they hit their opponents with a blistering counter-attack, a move that ended with Lars Stindl forcing Roman Burki into a comfortable save.
The hosts surged forward again in the 28th minute, this time through Paraguayan hitman Raul Bobadilla, who latched on to Jonas Hofmann's deflected strike and fired just wide under pressure from a defender.
Four minutes later, the visitors broke the deadlock as Reus rifled Andre Schurrle's cross in off the underside off the crossbar, giving Dortmund the lead against his former club.
Gladbach thought that they had equalised in the 42nd minute when Thorgan Hazard's free kick was bundled in by Jannik Vestergaard, but after consulting the VAR system, the referee ruled the goal out for offside.
With 10 minutes played in the second period, Burki preserved Dortmund's slender lead, pulling off two saves in rapid succession to keep out Stindl's initial strike and deny Bobadilla on the follow-up.
Dortmund were disappointing in the final third throughout the match, but they did come close to a second just after the hour mark when Reus met Mario Gotze's cross with a vicious half-volley that Yann Sommer was forced to turn behind for a corner.
Burki remained a thorn in Gladbach's side into the closing stages, pulling off reaction saves to deny Nico Elvedi and Bobadilla in the final 15 minutes as the home side relentlessly pressed for an equaliser.
Dieter Hecking's side were also denied what appeared to be a stonewall penalty kick in stoppage time when Sokratis hauled Vestergaard to the ground in the penalty area, only for the referee wave play on.
The win leaves them in 10th place in the Bundesliga table while Dortmund climb two places to second.
BORUSSIA MONCHENGLADBACH (4-4-2): Sommer; Oxford, Ginter, Vestergaard, Elvedi; Hofmann (Herrmann '7), Kramer, Zakaria (Cuisance '27), Hazard; Bobadilla (Drmic '18), Stindl
BORUSSIA DORTMUND (4-2-3-1): Burki; Piszczek, Sokratis, Akanji, Toljan; Weigl, Castro; Schurrle (Toprak '36), Gotze (Pulisic '22), Reus (Dahoud '19); Batshuayi