Erratic performance from the Mainz goalkeeper. Could do little about either goal but attempted a volleyed clearance in the second-half when he could have caught, which caused alarm amongst the back four.
Fell asleep for Robert Lewandowski's goal, but was competent in marking the Poland international for the majority of the match.
The left-back - like his team-mate on the opposite flank - was competent in his forays forward and measured in defence.
Dragged Lewandowski back for the first BVB goal, which allowed Marco Reus' cross to tumble untouched into the corner of the Mainz net.
The Germany midfielder propelled Mainz into an early lead with a cracking half-volley from 20 yards, but was a lot quieter after that initial outburst of quality. Brought off at half-time.
Marauded down the right impressively. He struggled early on with Marcel Schmelzer, but eventually got to grips with the game and delivered several telling crosses from wide positions.
Immensely hard working but had little luck in front of goal. His three best chances lacked conviction and ultimately proved costly for him and his side.
Hassled and marked Gotze out of the game for much of the match, but his actual quality on the ball was less than desirable.
An uninspired shift from the attacker, who struggled to make the most of an unconvincing Dortmund defence. Replaced in the final few minutes of the match.
Excellent pass for Caligiuri early on in the game which ended in a Mainz goal, and helped maintain a level of intensity in the second-half as the hosts pressed for an equaliser which never came.
A tame showing from the forward, who was up against two centre-backs who were making more mistakes than they usually do.
The goalkeeper was competent without ever needing to extend out of first gear.
Looked excellent going forward after Mainz went ahead, but restricted his runs after Reus' equaliser. Another example of a defender that arguably should have marked the opposition full-back more stringently.
One excellent run midway through the first-half aside, the right-back was quiet for most of the match. Could have done better in ensuring crosses were kept to a minimum from his flank.
Like his fellow central defender, the Germany star looked shaky at the start but eventually recovered to some sort of solidity.
The Serbian centre-back was not quite at his imperious best but, after giving away several passes early on, settled into his position and helped stem the tide of attacks in the second-half.
The only change to the Dortmund side after their 4-1 win over Ajax, he was quiet throughout and was subbed late on.
Was subbed with a third of the game gone after picking up an ankle injury in the middle of the park.
The defensive midfielder did his job but did not look comfortable on the ball throughout.
The hosts’ defence did an excellent job in shackling the youngster. However, Gotze still found the occasional second or two to produce several moments of magic.
Was effective in both attack and defence for the visitors. He scored the equaliser and put in a tireless shift up and down the flank.
Quiet for the first 30 minutes but was incredibly cool and composed to lob in Dortmund's winner. He almost added to their lead early in the second-half too, but Wetklo denied him another goal.
Brought on for Mainz’s goalscorer at half-time, and injected some pace and unpredictability into his side. Surprisingly tired towards the end of the game though.
Brought on with a third of the match to go, he helped to maintain Mainz's attacking impetus.
The injury-ravaged striker did not have any impact after coming on in the dying moments of the game.