The defending champions battled to three more points on their quest for another top-flight crown, having been pegged back through a Franco Di Santo strike.
Muller's miscued effort 36 minutes in would prove to be the matchwinner, though, making it 12 victories in a row in all competitions for Bayern and taking them 18 points clear at the top.
The breakthrough goal arrived just minutes later, as Lewandowski converted from close range after reacting quickest to Muller's saved shot.
Schalke were temporarily level before the half-hour mark as, shortly after Lewandowski came close to bagging his side's second, Di Santo kept his cool inside the box to direct a volley past Ulreich.
Lewandowski then came close with another shot and had a penalty shout turned down under contact from Naldo, but Bayern restored their lead before the interval through a fortunate Muller strike from a tight angle that somehow found the net.
Leon Goretzka blasted wide against the club he will join in the summer, and Embolo came even closer when forcing a big save out of Ulreich in the Bayern goal.
If not for a Benjamin Stambouli block to deny Lewandowski a certain goal from close range it would have been game over, but Schalke continued to plug away in search of a rare opposition point here.
There was to be no more major chances, however, meaning just one league win in six for Schalke, who are now down in sixth place.
BAYERN MUNICH (4-1-4-1): Ulreich; Kimmich, Boateng (Sule 71'), Hummels, Alaba; Vidal; Robben, Muller, Rodriguez (Martinez 81'), Ribery (Coman 77'); Lewandowski
SCHALKE 04 (3-4-3): Fahrmann; Stambouli, Naldo, Kehrer; Caligiuri, Goretzka, Meyer (Oczipka 59'), Schopf; Di Santo (Konoplyanka 77'), Bergstaller (Haarit 65'), Embolo