Nils Petersen and Thomas Muller were on target for Bayern, whcih earned an impressive win away to its Ruhr rivals.
Nils Petersen opened the scoring on 22 minutes, and Thomas Muller made it 2-0 with a quarter of an hour left to play.
After a lively start in which neither team could find much space in midfield, Franck Ribery seized his first opportunity to run at the Schalke defense, and made a surging run from deep in his own half before playing Petersen through on goal. The striker, who stood in for the injured Mario Gomez, had his first effort blocked by goalkeeper Ralf Fahrmann, but pounced on the rebound and drove home the opener.
Bayern and Petersen in particular missed a host of chances to put the game away, but only managed to double the advantage in the 75th minute. Substitute David Alaba linked well with Ribery, and after a poor touch by Kyriakos Papadopoulos, Muller volleyed home from close range.
Aside from the opener, chances for Bayern were very limited in the first half, and it was instead the host side which was more impressive overall in the first half. A loose Ribery back pass set up Klaas-Jan Huntelaar with a chance on goal in the 29th minute, but the striker fired narrowly wide. Four minutes later, Huntelaar had another clear opportunity, but his well-taken volley again missed the target by the thinnest of margins.
Things changed completely after the break, as Bayern pressed for a second goal and began to dominate the play. Within the opening minutes, Petersen squandered a pair of clear chances. The youngster curled one short wide, and later sent the ball wide with an open goal waiting.
Muller ought to have scored long before his goal, but had a sliding finish miss the target after a fine through ball from Philipp Lahm.
Bayern's second goal was a long time coming, and Muller's strike silenced the home fans, and finished off any hope Schalke could have of taking a point. The final quarter hour of a previously hotly contended game ended with all the intensity of an exhibition as the hosts succumbed to defeat.
The result sees Bayern reclaim its lead in the Bundesliga standings, as the club moves two points clear of Werder Bremen and Monchengladbach. Schalke slips further in the standings to ninth place, having lost its last two games.