A goal from Thomas Muller and a Mario Mandzukic brace earned the visitors three points to extend their advantage at the top of the table to 14 points over Bayer Leverkusen, who face Borussia Dortmund on Sunday.
Mainz held their own until just before half-time, but then collapsed in the second period as Mandzukic showed why he is keeping Mario Gomez on the Bayern bench.
The hosts were courageous and quick to attack Bayern each time they gained possession.
The record champions were therefore prevented from getting their usual flowing football together as a Mainz player was snapping at the heels of Franck Ribery, Muller and Bastian Schweinsteiger whenever they gained possession.
They took the lead with their first real chance of the game, though, with Muller taking the ball round Christian Wetklo and slotting into an open goal in the 41st minute.
The goal changed the complexion of the game, with Mainz no longer able to just try to frustrate Bayern.
Instead, they needed to do more attacking of their own, and this inevitably left them open to conceding.
And against a side in the form Bayern are in this season, that was deadly.
Mandzukic doubled Bayern's lead with their first counter-attack, played to perfection with David Alaba, Ribery and Toni Kroos all involved in setting up the Croatian, who provided a finish with the outside of his boot.
He then became the Bundesliga's top scorer with his 14th of the season in the 57th minute as he headed in Philipp Lahm's cross at the far post.
Arjen Robben and Gomez were both introduced by Bayern coach Jupp Heynckes, who was starting to turn his attention towards the Champions League last-16 tie with Arsenal.
And they were able to take it easy without running any risks as they picked up yet another win to confirm their dominance of German football this season.