The hosts, who travel to Ajax Amsterdam for the Champions League next week, had shot out of the blocks and earned a dream start with Reus thumping in a deflected cutback in the third minute for a dream start.
Marco Reus said of Haaland:
“It is clear he had been missing in our team.”
“It is important that he plays because he constantly keeps two or three players occupied.”
“To score two goals on his comeback is top. That is why we signed him.”
It was Reus’ 14th goal in 20 games against Mainz, the most he has scored against any Bundesliga club.
In a tense first half, Dortmund had three-quarters of possession.
But, they had to wait almost the entire half for another chance in stoppage time.
When a Jude Bellingham effort was cleared off the line.
Haaland’s penalty gave Dortmund a measure of comfort in the second half.
And Mats Hummels hit the post with a glancing header but the visitors were not yet done.
Mainz struck with Jonathan Burkardt in the 87th from a mistake by Dortmund keeper Gregor Kobel to set up a nervous finale.
Before Haaland settled it in extra time to make it 70 goals in 68 matches in all competitions for his club.
Securing them their ninth consecutive home league win.