Nico Elvedi, who netted the winner for Gladbach against Werder Bremen in midweek, started as Erling Braut Haaland, Julian Brandt and Marco Reus continued up top for Dortmund.
The host thought to have taken the lead inside a minute through a smart finish from Florian Neuhaus following good build-up play, but it was ruled out by the Video Assistant Referee (VAR).
However, it took Gladbach 11 minutes to eventually go ahead when Elvedi continued his scoring form with a pin-point header from the centre of the area following a free-kick from Jonas Hofmann.
Dortmund, who were smarting from their loss to Bayer Leverkusen in midweek, responded 11 minutes later as Haaland picked up a through ball from Jadon Sancho to finish from a tight angle.
It was two for Haaland before the half-hour mark after another delivery from Sancho saw the former nestle the bottom-corner from the centre of the area.
Gladbach though pulled themselves' level after a few minutes with a close-range strike inside the area from Elvedi following a smartly taken delivery from a set-piece.
The Black and Yellow were behind for the second time in the match five minutes from halftime when Ramy Bensebaini met a telling ball from Neuhaus to beat goalkeeper Roman Burki with ease.
Haaland came close to grabbing a hat-trick midway through the second half with a header in the centre of the area following a cross from Emre Can, but he nodded wide of the mark.
Gladbach looked for more control a little later and as such withdrew Hofmann in favour of Marcus Thuram, as Dortmund continued chasing a comeback.
It paid dividends towards the last ten minutes as Thuram arrived in the centre of the area to head home a corner-kick from Neuhaus.
Dortmund weren't able to launch a comeback late on, thus suffered back-to-back defeats to see the host take fourth place in the process.