Made two smart saves from Fernandinho to preserve the clean sheet, in a game where he was a spectator for large spells.
Absolutely spot on in defence, making a few critical interceptions to some dangerous Shakhtar deliveries into the box. Made his presence felt at the other end of the pitch with an unstoppable header from Mario Gotze’s corner to open the scoring.
Beaten once or twice defensively, but was always a willing runner, motoring well up the flanks while showing a lot of energy to recover his defensive position.
Broke up play effectively, with more than one of his tackles leading to a Dortmund counter-attack. Did not often look to attack, but that was never on his agenda as he stood firm in his own half of the field.
Your typical Schmelzer display - solid and reliable at the back, while keeping things simple when supporting the attack.
Not always put under serious pressure, but when the ball found its way into the area, there was no doubt that Subotic or Santana would find a way to remove the danger.
Controlled the tempo of the game, often releasing the ball quickly to one of the four attacking players ahead of him. Taken off late on for Nuri Sahin.
Simply a cut above the rest. Pulled the strings magnificently in an advanced midfield role, picking his passes superbly, or driving his team forward when needed. Set up Felipe Santana’s first from a corner, before adding his name to the scoresheet by finishing off a slick counter-attack.
Ran his socks off as usual, and forced the third goal through sheer willpower, teeing up Gundogan for a shot and reacting quickest to Pyatov's spill to poke home.
Linked well with his team-mates in attack. Provided some vital width, and his dribbling ability came to the fore with a fantastic run past four players that was inches away from being a wonder goal.
A good example of how to lead the line. The Pole linked superbly with his team-mates when he had his back to goal, and drifted out to the flanks to find space. One such move saw him tee up Mario Gotze for the second goal.
Made a few fine saves throughout the game, but all his good work was undone by a horrible spill of a routine catch into the path of Kuba, who scored to put Dortmund 3-0 up.
The full-back was nowhere to be found when Lewandowski drifted into his area of the pitch to set up the second Dortmund goal.
Received an early yellow card for an unwise foul on Robert Lewandowski. Found it hard at times to cope with the waves of yellow and black shirts when Dortmund attacked on the counter, and missed an interception in the build-up to the home side’s second.
Very lucky to escape without a first-half booking for an ungainly challenge on Robert Lewandowski, and was beaten all ends up by Felipe Santana’s leap for the opening goal.
Given a torrid time by the driving runs of Reus and Gotze. The veteran looked his age today, and was not much use in the attacking third either.
Made a crucial last-ditch tackle on Lewandowski, but otherwise, he too struggled to contain the Dortmund attack when they were in full flow.
A marked improvement in the second half after an anonymous first, but for all his effort, the quality was not there in the end.
Had the ball at his feet on a few occasions with the opportunity to fashion an opening on the break, but he was hit or miss in that regard. A few quality passes were betrayed by a good many questionable ones as he did not always produce what was needed.
Marked completely out of the game by Santana and Subotic as he barely got a sniff of the ball.
Added little to his side's play in the offensive third of the field, as he was hesitant on the ball. Blocked by Piszczek on his one decent shooting opportunity.
Very careless to get called offside seemingly whenever his team looked to pick him out on the break. Taken off at half-time for Douglas Costa.