Klaas-Jan Huntelaar had two early chances for Schalke - his first was a header and his second a shot after a through-ball, but Gladbach goalkeeper Yann Sommer was equal to both efforts from the Dutchman.
Huntelaar then hit the post with a header midway through the first half and a second cross was met by Max Meyer at the back post, but Sommer was there to push the ball over the bar.
Former Wigan Athletic striker Franco Di Santo had the next opportunity for the home side in a strong first half, but the Argentine international could not beat Sommer one-on-one.
However, it was Gladbach who would take the lead just before half time after a slip from Joel Matip allowed Lars Stindl in behind, and the German kept his cool to place the ball beyond Michael Gspurning in the Schalke goal.
Gspurning then gave away a penalty in the second half as he fouled Stindl in the box after the Gladbach forward beat the goalkeeper to the ball, and Thorgan Hazard blasted the spot kick beyond the goalkeeper's grasp.
Huntelaar had another attempt on goal soon afterwards as he beat the defence with a clever turn, but Sommer was there again to deny the former Real Madrid man as Gladbach held on to advance to the next round of the DFB-Pokal.