A Martin Hinteregger own goal helped the Royal Blues to victory, although they needed a deflected Leon Goretzka strike to retake the lead after Andreas Christensen's equaliser before they could celebrate a 13th win in their last 14 Friday night home fixtures.
It was an enthralling first half of end-to-end football which only lacked a goal, with Gladbach arguably closer to it than their hosts.
Raffael twice spurned chances while Ralf Fahrmann had to be at his best to turn away efforts from Lars Stindl and Thorgan Hazard, who also blazed over from a good position.
Franco Di Santo did likewise at the other end, where Yann Sommer was put to the test most by one of his own defenders with a deflected Sascha Riether cross threatening to sneak just inside his near post.
The pace did not relent in the second half, and it certainly did not relent for Schalke's Leroy Sane, who burst into the area before teeing up a comical own goal from Hinteregger, who inadvertently exchanged passes with his own team-mate Havard Nordtveit before turning the ball into his own goal.
Max Meyer had a second ruled out for offside, only moments before Mahmoud Dahoud left the Schalke crossbar rattling with a 25-yard effort.
It was a warning that the game was not over by any stretch of the imagination, and that was confirmed when Stindl teed up Christensen, who was in an unusually advanced position to beat Fahrmann with a low shot.
That was not the final act in the game either, with Goretzka's shot taking a deflection off Granit Xhaka's shoulder on its way into the far corner of Sommer's goal, with Schalke's lead restored with seven minutes remaining.
Fahrmann then made remarkable saves in quick succession from Christensen and, with the help of the post, Raffael to preserve the points and thwart Gladbach's late assault on his goal.