The Bavarians, chasing a fifth straight Bundesliga title, lacked any spark for much of the game, with Tuesday's Champions League quarter-final extra-time loss to Real Madrid having taken its toll on the players.
They are on 70 points, with second-placed RB Leipzig on 61, ahead of their match at Schalke 04 on Sunday.
"It was difficult for us but we expected more," said Bayern coach Carlo Ancelotti. "We were not as compact in the first half. We should have done it better.
"We were better after the break and luckily managed to get the equaliser."
Bayern, who next face Borussia Dortmund in the German Cup semi-final next week, made an error-ridden start and Bojan Krkic sneaked in to fire the visitors ahead after three minutes.
Levin Oztunali could have doubled the lead from close range a little later as Bayern looked disorganised.
Arjen Robben levelled after a fine break from the Bavarians but they were again on the back foot when Mainz were awarded a 40th-minute penalty and Daniel Brosinski beat goalkeeper Sven Ulreich.
Thiago Alcantara's low drive from the edge of the box drew Bayern level for the second time but despite late efforts and more than 70 percent of possession they could not find a winner.
Read the full article on eurosport.co.uk: Lacklustre Bayern dig deep to rescue 2-2 draw against Mainz