David Wagner's team turned up the heat after halftime with Suat Serdar slotting in from a Gregoritsch pass in the 48th minute.
The Austrian, who joined Schalke during the winter break on loan from Augsburg, then finished off a fine break 10 minutes later, tapping in Benito Raman's assist to lift Schalke to fourth place on 33 points.
They are level with champions Bayern Munich, who take on Hertha Berlin on Sunday.
Leipzig frustrated by Hoffenheim as title hopes hit
League leaders RB Leipzig, on 37, host Union Berlin on Saturday. Gladbach remain in second place on 35.
Euro Papers: Bruno Fernandes 'goes on strike to force United move' - but will it work?
Real Madrid target both Haaland and Mbappe - Paper Round
Exclusive: Spurs line up move for 'Austria's Peter Crouch', Jose safe for now