Schalke move level at summit
Joel Matip gave the Royal Blues a perfect start with a goal in the third minute, while the home team also had a goal from Klaas Jan Huntelaar disallowed. Kyriakos Papadopoulos then doubled the lead in the 57th minute, with Julian Draxler adding the third ten minutes from time.
Shinji Okazaki pulled a goal back in the 87th minute for Stuttgart but it was too little too late to worry the hosts as they made the most of Bayern's defeat to Borussia Monchengladbach last night.
Schalke raced into an early lead when Matip was given a simple tap-in from Benedikt Howedes' stooping header as Stuttgart failed to clear a corner.
Huntelaar had the ball in the back of the net again five minutes later, but the goal was ruled out for offside after Sven Ulreich spilled Christian Fuch's free-kick out to the Dutchman.
Stuttgart were just unable to get a foothold in the game as the Royal Blues sought full revenge for their 3-0 defeat to the Swabians on the opening day of the season.
The home side finally got a second goal just before the hour when Julian Draxler's corner was met by the head of Papadopoulos, and he left Ulreich no chance with a powerful header.
Schalke continued to do all the attacking and they made it three when Draxler received the ball from Huntelaar and beat Ulreich, who was unable to keep the shot out despite getting his fingertips to the ball.
Schalke were now eating into Bayern's vastly superior goal difference, but Okazaki prevented it from being a perfect day for the home team when he netted a late consolation for Stuttgart. Tamas Hajnal's shot hit the post, but the Japanese forward was on hand to tap the loose ball in.