Explosive Leverkusen return to top
Undefeated Leverkusen, with 38 points from 18 matches, went behind to an early Tim Hoogland strike but Michal Kadlec, Tranquillo Barnetta and Toni Kroos soon put them clear.
Mainz gave the hosts a scare when they cut the deficit through Niko Bungert in the 67th minute before Eren Derdiyok sealed victory two minutes from time with a low drive.
Bayern are on 36 points after beating Hoffenheim 2-0 on Friday, while Hamburg SV moved up to third with 34 points following their 2-0 win against Freiburg.
Bottom-placed Hertha Berlin notched their second win of the season by beating hosts Hanover 96 3-0 with Greece striker Fanis Gekas, their new loan signing, grabbing Hertha's third goal.
Bayern Munich topped the Bundesliga for the first time in 18 months with a win over Hoffenheim on Friday - their seventh straight victory in all competitions - but their stay there was short lived after Leverkusen recovered from the early setback.
"We found it hard going at the start and needed to be awakened," said Leverkusen coach Jupp Heynckes.
"We had a great phase in the first half and should have finished off the game there and then because we had lots of chances. When Mainz closed in to 3-2 we reacted again quickly, which is also a specific quality we have."
Mainz took the lead after eight minutes when Hoogland scored on the rebound from an Andreas Ivanschitz free kick but Leverkusen immediately sprung into action.
The hosts levelled in the 15th when Kadlec, back fit and replacing Gonzalo Castro, beat his marker to head home.
Swiss international Barnetta fired Leverkusen ahead four minutes later with a shot from inside the box and, with the Mainz defence in complete disarray, playmaker Kroos pounced on a loose ball to add another goal on the half-hour.
The home side stepped off the gas in the second half and needed another rude awakening - a Bungert strike from eight metres - to take control yet again.
Leverkusen almost restored a two-goal lead seconds later but Derdiyok's header rattled the post with the keeper well beaten.
The Switzerland forward did get the fourth goal late on, slotting home after being set up by Renato Augusto.