Max Meyer and Jefferson Farfan struck in the second half to secure a victory for the Gelsenkirchen side and keep their hopes of finishing second alive.
Schalke kept itself in the running for second place in the Bundesliga with a comfortable 2-0 win over Eintracht Frankfurt on Friday.
Jens Keller's side was always in command at the Veltins Arena, and wasted several opportunities to add gloss to the score against a below-par Frankfurt side.
But it mattered not as Schalke cruised to a deserved victory to move level on points with second-place Borussia Dortmund ahead of the local rival's daunting trip to champion Bayern Munich on Saturday.
Despite dictating much of the game, it took Schalke until the 59th minute to open the scoring, which it did through attacking midfielder Max Meyer.
The 18-year-old slotted into the net on the second rebound after Klaas-Jan Huntelaar's shot had been brilliantly saved by Frankfurt goalkeeper Kevin Trapp following Sead Kolasinac's fierce long-range effort, which rattled off the post.
Schalke then thought it had doubled its lead when Julian Draxler's tame effort squirmed under the body of Trapp, only for the strike to be chalked off for offside.
The hosts were handed another opportunity to extend the lead in the 64th minute as they were awarded a penalty following Carlos Zambrano's foul on Draxler.
However, Huntelaar saw his spot kick saved by Trapp to keep Frankfurt in the contest.
Leon Goretzka hit the post nine minutes from time as Frankfurt's goal continued to lead a charmed life, but the result was finally made safe in the first minute of injury time, as substitute Jefferson Farfan found the net with a superb curling free kick.