Just three minutes later Dortmund were in front. Milos Jojic continued his excellent form since signing for the club, with his shot from the edge of the box clipping teammate Oliver Kirch on the way in.
Mainz refused to let Dortmund's strong start get to them and they were level on 14 minutes. Shinji Okazaki struck an effort that was going well wide before it took a huge deflection off Mats Hummels and past Mitchell Langerak.
A frantic opening 20 minutes was complete not long after the equaliser, with Robert Lewandowski latching on to Henrikh Mkhitaryan's pass to finish calmly for 2-1.
It could have been even better at the break for Dortmund, but Reus was guilty of spurning a great chance from the edge of the box after meeting Lukasz Piszczek's cut-back.
Mainz were back level 10 minutes into the second half as Okazaki latched on to a poor back-pass from Nuri Sahin to finish, but three minutes later Piszczek restored the lead with a header at the back post.
Niko Bungert was then dismissed for a foul in the box, with Reus confirming the three points from the spot.