Shawn Parker took Mainz's one and only serious chance of the game, just before half-time, but the Bavarians responded in the second half with Arjen Robben and Thomas Muller turning things around in the space of two minutes.
Mario Mandzukic added a third before Muller's second - this time from the penalty spot - completed the rout to lift the champions back to the summit after they had been displaced on Friday night when Bayer Leverkusen won 2-1 at Hoffenheim.
A Marco Reus penalty in the fourth minute was enough to earn second-placed Borussia Dortmund all three points against Hannover.
The Germany international converted from the spot early on, but Jurgen Klopp's men made life difficult for themselves by not adding a second.
Hannover grew in confidence as the game wore on but Dortmund held on for the points to move back up to second, ahead of Leverkusen on goal difference and a point behind Bayern.
Schalke came from behind twice to snatch a 3-2 victory at Eintracht Braunschweig and move temporarily to fourth in the table.
Orhan Ademi gave Braunschweig their first lead of the season at home, but Max Meyer brought the Royal Blues level within 10 minutes.
Karim Bellarabi then raised the home fans' hopes that they would finally see their team win, but Leon Goretzka replied before Roman Neustadter clinched victory for Jens Keller's men in stoppage time.
Managerless Nurnberg picked up a point from their trip to Eintracht Frankfurt although a 1-1 draw still leaves them inside the bottom three.
Vaclav Kadlec's fourth goal of the season was not enough to earn Frankfurt all three points with Josip Drmic levelling late on for Nurnberg, who are expected to appoint their new coach in the coming days.
Werder Bremen and Freiburg played out the first goalless draw in the Bundesliga this season.
It was a deserved outcome from a game in which both sides lacked invention and ambition, although Freiburg came the closest to victory when Matthias Ginter's effort hit the crossbar.
The draw left Christian Streich's men still waiting for their first win of the season.
In the late kick-off, Adrian Ramos' goal earned Hertha Berlin a 1-0 win at home to Borussia Monchengladbach which took them above their opponents and into fourth place.
Ramos headed home Per Skjelbred's free-kick 10 minutes before the end of a first half largely dominated by Lucien Favre's visitors, who were unable to turn their possession into goals at the Olympiastadion.
Gladbach captain Martin Stranzl was sent off in the closing stages after collecting two bookings in little over a minute.