That's all from here - I hope you enjoyed today's coverage. Until next time, all the best.
A truly remarkable game from two sides that pushed each other to the limit today. Mainz played well and will be disappointed not to have claimed a point, but their loose passing eventually came back to haunt them. This result is a huge boost for Dortmund, who have needed a stroke of luck as of late, as they head into their Champions League match against Marseille.
FULL TIME! Just seconds after the clock passes the 91:00 mark, referee Michael Weiner blows his whistle, much to the dismay of the home fans, who believe there should be more time added. They have a good point, but it's full time nonetheless.
Goal Lukasz Piszczek
Yellow Card Zdenek Pospech
TOOOOOOOOOOOR PISZCZEK MAKES IT 2-1! Perisic's free kick is cleared only to the edge of the box. Piszczek takes a low and not very powerful shot on goal, but Muller's view is impeded by Hummels, who lets the ball through his legs. By the time the goalkeeper can get his eyes to the ball, it's too late, and Dortmund apparently claim a late winner!
Oh, a horror challenge by Pospech on Gotze, who takes a boot straight to his stomach! That earns a yellow card for the defender, and BVB have a chance now to go 2-1 ahead...
Substitution Elkin Soto Marco Caligiuri
A final substitution for Mainz: Marco Caligiuri is on for Soto
A rare mistake by Muller! The goalkeeper gets his hands to Gotze's cross, but spills it. However, no Dortmund man is lurking at the back post to pick up the scraps.
Substitution Ilkay Gündogan Jakub Blaszczykowski
A final substitution for Dortmund: Jakub 'Kuba' Blaszczykowski comes on for Gundogan.
IVANSCHITZ! INCREDIBLE SAVE! This time it's the Austrian who is played in on goal by Soto. Weidenfeller cuts off the angle, however, and blocks the shot to concede a corner.
UJAH! WHAT A TACKLE BY HUMMELS! Incredible - the Nigerian takes the ball from deep and runs at Hummels, who back-tracks before racing to make a last-ditch challenge!
Ivanschitz...oh, just too heavy with his final touch! The Austrian receives the ball with space outside the box and evades Subotic before a heavy touch allows Piszczek to take the ball off his boot.
Kehl is very fortunate not to pick up a booking, or even concede a free kick, for clipping Ivanschitz. The home fans are furious, but play continues and Barrios has a header miss well wide.
Mainz are really using immense finesse. For an extended spell, the hosts sit back to absorb pressure, cutting off runs from the right. Then, a risky pass from Gundogan, and they intercept and start the counterattack.
Substitution Robert Lewandowski L. Barrios
Substitution Nicolai Müller Andreas Ivanschitz
On the topic of late surges, Andreas Ivanschitz replaces Mainz goalscorer Nikolai Muller, while Barrios makes his long-awaited return, replacing Lewandowski.
The pace of the game has finally slowed somewhat over the last few minutes. Surely, though, the two sides are gearing up for a late surge...
Substitution Shinji Kagawa Moritz Leitner
Substitution for Dortmund: Kagawa, who has covered more ground than anyone today (over 10.3 km) is replaced by 18-year-old phenom Moritz Leitner.
Oh, and on the other end Polanski slots through to Ujah who is through on goal, but JUST offside!
Penalty? No! Lewandowski is felled by Bungert as he turns, but play continues!
LEWANDOWSKI! Gotze plays a low cross to the Pole, who has a soft first touch before turning his volley on goal. Muller is well positioned to make the save, though.
Ooh, Mainz nearly have a chance to reclaim their lead, but Ujah's header is cleared away by Subotic!
Assist Robert Lewandowski
Goal Ivan Perisic
TOOOOOOOOR PERISIC EQUALISES! Lewandowski gets a foot to take the pace off a cross from the right, and Perisic pounces. He evades one tackle from Pospech, then slots home!
Hummels...offside! The resulting dead ball is played over the top to Perisic, who squares for the defender. Evidently the Croat was fractionally offside. Either way, Muller produced a fine save...
Oh, Kehl and Soto have a very painful-looking collision, with the latter surrendering a free kick...
Fathi makes an outstanding tackle to stop Piszczek. The Mainz left-back has been in superb form this afternoon...
GOTZE! The youngster has a go from the edge of the box, but Muller catches his stinging shot. The goalkeeper fumbles for a moment, but gets to the ball before Hummels can knock in the rebound.
KAGAWA! Another long drive from the Japan international forces yet another fine save from Muller! Amazing!
Incredible last-ditch defending from Mainz! Piszczek runs to the byline and cuts back for Gundogan, but Bungert slides in to deny a chance. BVB want a hand ball, but none is given. Moments later, Gotze finds the ball at his feet and 10 yards from goal, but his finish is blocked!
A deep cross nearly finds Ujah at the back post, but Weidenfeller leaps to tip out for a corner.
PERISIC! Oooh, what a risky clearance by Muller! The Croatian winger plays a low cross towards goal and the shot stopper clears off the line with his foot!
Kagawaaaaa no! Gotze sets the table for the Japanese playmaker, who can't beat the first defender and is stripped of possession. Gundogan trails the play and fires towards goal, but well over the bar.
We're back, and the match is underway once more!
It's been an interesting 45 minutes, with Dortmund having the majority of the positive play but failing to create many clear chances. Mainz defended very well in and around their own penalty area, and were ruthlessly efficient, taking a lead into the interval. That's all from here for now - I'll be back to keep you covered in the second half.
Oh, nearly a chance for Mainz, but the break is just barely snuffed out as Dortmund race back to defend. And that's the last event of the first half!
Substitution Eric Maxim Choupo-Moting Anthony Ujah
First substitution for Mainz: Anthony Ujah replaces Choupo-Moting, who evidently picked up a knock.
LEWANDOWSKI! WHAT A MISS! Lowe plays the Pole past Bungert and Noveski, but his finish is woefully weak, and saved rather easily by Muller!
GUNDOGAN! Oooh, wide! Gotze dances past a pair of defenders on the right and plays in his Germany international team-mate, who fails to properly get hold of his strike, but nonetheless manages to send the ball narrowly wide.
An incredible turn of events given the run of play thus far, but full credit to the hosts for never giving up and keeping things very tight in the centre.
Goal Nicolai Müller
TOOOOOOOOOOOOR MAINZ! Horrendous error by Piszczek and incredible effort by Nicolai Muller! The right-back cuts off Risse's run, but his back-pass goes straight to Muller. The youngster is blocked initially and falls to the ground, but Hummels and Weidenfeller struggle to see the ball in the sun. From the ground, Muller volleys into the net! Incredible!
Another Mainz counterattack fizzles out as Pospech's cross is well ahead of anyone in the box.
Heavy pressure from Mainz through Risse and Choupo-Moting in particular, who are denying Hummels and Subotic room to create attacking play from deep.
Noveski comes in hard with a challenge on Gundogan, who wins a free kick in the centre, but far from goal. The former Nurnberg man crosses, but comes up short and the ball is cleared.
Mainz break forward with Nicolai Muller, but his through ball towards Choupo-Moting is intercepted by Hummels.
KAGAWA! Oooh, another fine save from Muller! The Japanese playmaker turns and fires a good effort towards the right of goal, but is denied!
Interesting stats: Dortmund are taking plenty of shots, but have a joint-league low tally of just one away goal this season. Overall they have scored once per every 14 attempts.
Gotze gets the better of Fathi initially, but tries to do too much on his own and dribbles the ball straight into Noveski's possession. The winger quite clearly wants to make up for time lost during his suspension.
Dortmund have trouble with the sun as they try to clear from their own penalty area. Hummels nods only towards Soto, but the veteran cannot control and the ball goes out for a goal kick.
Ooh, Kehl is very fortunate not to be booked after a very poor tackle on Nicolai Muller. The Dortmund man had had a woeful first touch to concede possession before sticking out his leg to stop the winger.
KEHL!! A glorious ball finds Gotze streaking up the right flank. The youngster cuts back to the trailing captain, whose finish is blocked!
AGAIN! From the corner, Muller is forced to make another fine stop! The hosts quickly counter and have a favourable numbers, but Risse's cross is unable to reach Choupo-Moting.
LEWANDOWSKI! Oooh, brilliant save by Muller! Gotze pops up on the left and crosses to the Pole, who nods on goal. Muller does just enough to tip over the bar.
Lowe fires an in-swinging cross that bounces in the penalty area before being acrobatically cleared. Well-read by the Mainz defence.
First foul of the game is committed by Soto for a clip on Gotze. Dortmund have a free kick on the right, but far from a dangerous area.
The pace of the game has been tremendous thus far - not end-to-end with the ball, but with the midfielders and full-backs especially covering an incredible amount of ground.
Risse has the first attempt on goal of the game, a speculative volley from distance, but Weidenfeller has no trouble saving in the lower-right corner.
Gotze races up the right flank to play a cross, but Fathi does well to block and concede a corner.
With the two highly athletic teams cancelling one another out in midfield, Fathi resorts to trying a long ball over the top, but Weidenfeller claims
AND THE MATCH IS UNDERWAY!
The players are on the pitch and the match is almost underway...
And for Dortmund (4-2-3-1): Weidenfeller; Piszczek, Subotic, Hummels, Lowe; Kehl, Gundogan; Gotze, Kagawa, Perisic; Lewandowski
Here are the starting line-ups. For Mainz (4-2-3-1): H. Muller; Pospech, Bungert, Noveski, Fathi; Polanski, Soto; Risse, Baumgartlinger, N. Muller; Choupo-Moting
The defending champions have received a boost as Mario Gotze has returned from a two-match suspension. However, Marcel Schmelzer and Sven Bender have both failed to even make the bench due to injuries. Long-term absentee Lucas Barrios may make his season debut today, having recovered from a hamstring tear.
Dortmund have had similar woes, having lost their last two matches and three of their first six.
Things have not gone so well for either side thus far this season. After winning their first two matches, Mainz have lost three out of their last four games, taking just one point
At this time a year ago, these two teams were in a dead heat for first place in the league. BVB overcame a deficit to win the title, while the "oh fives" managed to finish fifth.
Hello, and welcome to Goal.com's LIVE coverage of Mainz vs Dortmund! I'm Clark Whitney, and I'll be keeping you company for the next two hours or so...
Times In BST
Live Final scheduled Suspended Cancelled Postponed