Jefferson Farfan put Schalke in front from the penalty spot, but Raffael levelled with a fine long-distance effort before Max Kruse snatched victory with a spot-kick of his own.
Schalke played the second half with only 10 men after Benedikt Howedes was shown a red card, and they failed to find an equaliser as the pressure mounts on coach Jens Keller, whose side now have a decisive Champions League fixture with Basle to come.
The Royal Blues took the lead after 16 minutes when Kevin-Prince Boateng was held by Julian Korb inside the area, and a penalty was given.
Jefferson Farfan stepped up to send the ball into the top left-hand corner.
Fourth-placed Monchengladbach levelled eight minutes later with Raffael allowed to approach the penalty area before curling an unstoppable shot past Ralf Fahrmann into the top left-hand corner.
It was his eighth goal of the season, more than he has managed in any previous campaign.
Monchengladbach took the lead on the stroke of half-time when Kruse's shot struck the outstretched arm of Howedes in the area.
The second penalty of the game was given, and since the Germany international had already been booked, he was shown a second yellow card and subsequent red, Kruse drilling the spot-kick low beyond Fahrmann.
Schalke tried to respond in the second half with Gladbach resorting to their customary counter-attacking football, causing problems on the break as the visitors committed more and more men forwards.
They nearly grabbed an equaliser in the last minute when Boateng headed goalwards, but Marc Andre ter Stegen somehow managed to keep the ball out as the Foals won their eighth straight home game of the season.