Marco Reus and Robert Lewandowski, who scored for the 12th game in a row, earned Jurgen Klopp's men all three points in a game they dominated, yet almost threw away in the second half.
Mainz arrived with a weakened side due to injuries and, despite a valiant attempt, were unable to return with anything tangible for their efforts.
Reus gave Dortmund a flying start with a goal after just 33 seconds.
The Germany international scored into an open goal after Christian Wetklo made a hash of Mats Hummels' long ball forwards.
Dortmund continued to attack with Reus denied by Wetklo, who showed quick reactions also to prevent Neven Subotic from scoring a second for the home side.
Lewandowski, seeking to score for the 12th game in a row, thought he had done that in the 29th minute when he put the ball past Wetklo, but the offside flag was raised and the goal did not count.
Marcel Schmelzer went close twice and Reus could have added a second as Dortmund tried to finish Mainz off as soon as possible to enable them to focus on their Champions League tie with Real Madrid on Wednesday.
Former Real forward Adam Szalai gave the Westphalians something to think about in the 73rd minute as Mainz threatened an equaliser.
But Lewandowski got the goal which keeps him on course to catch Gerd Muller's record of scoring in 16 consecutive games with a 90th-minute goal securing all three points.