Mainz started the game brightly and they came close through two early chances, before Jairo Samperio was unable to take a standout opportunity inside the Bremen box after 13 minutes.
The miss proved to be critical, given that Bremen later went to grab an opener through Anthony Ujah, who put his side into the lead six minutes before the half-time whistle.
The first-half action did not stop there, however, as Ujah returned just five minutes later to grab himself a brace and put the home side on the ropes.
Mainz appeared shaken and they were unable to settle themselves for the remaining moments of the opening half, given that Bremen soon found a third before the interval through Fin Bartels three minutes into added time.
Bremen might have added a fourth after the break, but Clemens Fritz was unable to find a way past Loris Karius, before Yoshinori Muto added a late consolation for the hosts as the game ended 3-1 in favour Werder.