In a high-tempo encounter, the hosts took the lead after just six minutes at Signal Iduna Park courtesy of Milos Jojic's deflected opener, before Shinji Okazaki levelled with a deflected effort of his own eight minutes later.
Robert Lewandowski restored the advantage after finishing a wonderful breakaway, only for Okazaki to pounce on a Nuri Sahin mistake to restore parity again shortly after the break.
However, from that point, Dortmund stepped up the pace to seal the points, and a Lukasz Piszczek header put them back in front before Niko Bungert was sent off for handling in the box.
Marco Reus stepped up to convert the resulting spot kick, securing a fourth consecutive league victory that also handed Jurgen Klopp's side Champions League football for another season.
Klopp had previously hailed the progress of his former club, where he spent a total of 19 years as a player and then manager before leaving for Dortmund in 2008, but there seemed to be no room for sentiment as the hosts made a vibrant start.
Reus fired an early warning after three minutes, striking the post with a thumping 30-yard free-kick.
And Dortmund, buoyed by their 3-0 win over champions Bayern Munich last week, were celebrating three minutes later as Jojic's strike from the edge of the area took a fortunate deflection off Oliver Kirch, leaving goalkeeper Loris Karius with no chance.
The visitors protested at a suspected handball from Kirch, but any sense of injustice was eased just before the quarter-hour mark.
Okazaki's speculative effort from the edge of the area cannoned off the boot of Mats Hummels and looped over the head of Australian Mitch Langerak and into the net.
Their joy at restoring parity lasted just three minutes, though, as Sahin's wonderful throughball from midfield found Henrikh Mkhitaryan, who burst into the penalty area before squaring to Lewandowski, who gladly slotted home for his 18th Bundesliga goal of the season.
Despite struggling to contain a lively Dortmund midfield, Mainz still managed to create chances before the break. First, Maxim Choupo-Moting headed wide, before Yunus Malli's vicious 25-yard drive went whistling over the crossbar.
However, Dortmund remained the better side and nearly extended their lead 10 minutes before the break courtesy of Reus, who sent a low shot just wide of the post after some good work down the left by Piszczek.
Reus had another great chance just after the interval, spurning a one-on-one with the goalkeeper after getting in behind the Mainz backline.
The Germany international's wastefulness was punished after 53 minutes when a poor back pass from Sahin was pounced on by Okazaki, who sprinted past Langerak to slot home.
But once again, Dortmund responded with a goal of their own three minutes later, as a whipped free-kick from Reus on the left found the head of Piszczek, who rose highest to glance the ball beyond Karius.
Lewandowski should have secured a fourth goal after 63 minutes when he was played clean through on goal, only to be denied by an inspired Karius save.
The hosts were awarded a penalty 11 minutes from time, after Lewandowski's effort hit the hand of Bungert, who was shown a red card.
Reus duly obliged with the resulting spot-kick, Klopp secured his sixth consecutive win over his previous employers, denting their Europa League hopes in the process.
- Sports & Recreation
- Robert Lewandowski
- Shinji Okazaki
- Jurgen Klopp
- Nuri Sahin
- Lukasz Piszczek