After their Champions League quarter-final comeback against Manchester United midweek, Bayern proved their staying power as they scored twice in as many minutes midway through the first half to stun their rivals, who last won the title in 1958.
Bayern now have 59 points from their 29 games to 58 for Schalke.
Frenchman Franck Ribery netted his fourth goal of the season, helping Bayern win at the Veltins Arena for the second time in ten days and shrug off recent league losses to Frankfurt and Stuttgart.
“This is a very important win but it was the minimum that we had to do. The next couple of matches are crucial,” said Bayern skipper Mark van Bommel.
Coach Louis van Gaal was delighted after Thomas Müller’s goal 70 seconds after Ribery’s opener proved enough for full points with Kevin Kuranyi’s header scant consolation for Schalke.
“We are leaders and we are still in three competitions – even down to ten men I was not worried as I knew Schalke would struggle to produce,” insisted the Dutchman.
Ribery, starting a league match for the first time since February 28 after an injury-plagued season, snaffled the opener with a right-foot shot after good work from Bastian Schweinsteiger.
Müller made it 2-0 after home defender Rafinha could only clear as far as Hamit Altintop, who fed Mueller for a neat finish.
Schalke coach Felix Magath, who led Bayern to two domestic doubles before his 2007 sacking, was unable to conjure a recovery though Germany international Kuranyi did reduce the arrears with his 18th goal of the season.
Magath is hoping to win the title with a third different club having shocked Bayern – and the rest of the country – by leading unfashionable Wolfsburg to the crown last season.
Van Gaal’s Bayern, who had turned in some inconsistent form in recent weeks in the league, proved their strength of character in pulling off the win in the absence of Dutch star Arjen Robben while they also lost defender Daniel van Buyten during the course of the game through injury.
They also ended the game with 10 men after former Schalke man Altintop was sent off four minutes before the interval for a foul on Rafinha but hung on as they took a big step towards their 22nd title.
Fellow title aspirants Bayer Leverkusen went down 3-2 at Eintracht Frankfurt despite a brace for Stefan Kiessling, the league’s joint top scorer with Kuranyi.
Elsewhere, Dortmund took advantage of Leverkusen’s fourth loss in a month to close the gap on third place – worth a Champions League qualifying round slot – to a point with a 2-1 win over Werder Bremen while Stuttgart are up to seventh after a 2-1 success over Borussia Mönchengladbach.