Max Kruse converted from the penalty spot after Mats Hummels saw red, with Raffael adding another strike with four minutes on the clock
The match remained goalless until the 81st minute when Mats Hummels was sent off and a penalty given in the hosts' favour and converted by in-form forward Max Kruse, before Raffael added insult to injury four minutes from time.
Goalkeeper Marc-Andre ter Stegen had earlier denied Dortmund, who struck the crossbar in between goals from Kruse and Raffael, with a string of fine saves as Monchengladbach executed an excellent late smash and grab.
Monchengladbach coach Lucien Favre named just one change from last weekend's 2-2 drew at Augsburg, with Granit Xhaka replacing Christoph Kramer.
Jurgen Klopp also made one alteration from the side that beat Marseille 3-0 in the Champions League on Tuesday, Roman Weidenfeller returning in goal in place of Mitchell Langerak.
Dortmund were the first to threaten in the fifth minute, Marco Reus curling his effort narrowly over the bar after latching on to a loose ball inside the area.
Ten minutes later the visitors were denied by a superb save from Ter Stegen, who thwarted Hummels from six yards after parrying Kevin Grosskreutz's long-range effort.
Klopp's men were making all the running in the opening stages and Ter Stegen was called into action once more in the 23rd minute, palming away Grosskreutz's stinging shot from 25 yards.
Dortmund went close again five minutes later, Reus sliding in Pierre-Emerick Aubameyang, but his left-footed effort from a tight angle flashed just wide of the post.
Reus then drove into the box in the 33rd minute, but the Germany international dragged his shot a yard wide of Ter Stegen's right-hand upright.
Five minutes before the break, Nuri Sahin's powerful drive was beaten away by the keeper as it remained scoreless at half-time.
The opening stages of the second half were much more even and the hosts should have taken the lead on the hour mark, but Oscar Wendt fired wide from 15 yards after good work by Kruse down the left.
Two minutes later, Ter Stegen was called into serious action for the first time since the break, tipping Reus' vicious dipping effort over the bar.
The visitors were suddenly looking dangerous once again, Hummels heading wide from Reus' right-wing corner midway through the half.
With 10 minutes to go, however, Kruse gave Monchengladbach the lead from the spot, sending Weidenfeller the wrong way after Hummels saw red for a professional foul on Nordtveit.
Dortmund almost responded immediately, Reus striking the bar with a free kick, before Raffael put the game beyond doubt, stroking the ball past Weidenfeller after being played in on the right-hand side.