Lukas Klostermann put third-placed Leipzig in control with two first-half goals, tapping in from Timo Werner's pass after 20 minutes and then clipping a neat finish over Florian Mueller 12 minutes later.
Karim Onisiwo pulled one back with a shot on the turn before halftime but Werner restored Leipzig's two-goal lead four minutes after the break.
Moussa Niakhate pulled one back from a corner and his fellow Frenchman Jean Philippe Mateta levelled with seven minutes left although Leipzig then missed three chances to grab a winner.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
Leipzig, already qualified for the Champions League next season, have 65 points, six behind leaders Bayern Munich, and two games left to play while Mainz are a comfortable 12th.
(Writing by Brian Homewood, editing by Pritha Sarkar)
