Did not have much to do on the day, and was a spectator for the vast proportion of the game.
The centre-back did not have an awful lot to deal with inside his own half, but his diving header was key to Aubameyang slotting home his second.
A dominant aerial performance from the Greek as he was rarely beaten when challenged in the air. He came close to finding the net with a header before the break.
Worked extremely hard for his team as he chased up and down the left flank, putting the opposition under pressure with impressive dribbling.
Pushed on effectively and offered Grosskreutz plenty of support on the left flank. He sent some tantalising crosses into the box, which made his team dangerous.
Allowed very little past him down his flank as he kept Aigner quiet for practically the entirety of the game. He was extremely dangerous on the break.
Linked the midfield to the forwards extremely well with some solid distribution and his deliveries from set plays were consistently impressive.
Effective in midfield as he did his job without really excelling. Frankfurt did not cause him enough worries out of position but he fell short when pushing up.
The Armenian supplied a fantastic pass to assist Aubameyang for his opening goal, and he created plenty more throughout the game for his other team-mates.
Took his Bundesliga tally to 13 goals this season with a pair of tidy finishes in the first half. He was a constant threat with his pace and regularly got into threatening positions.
His movement was extremely intelligent in the final third as he made a number of bright runs in behind the defence, and he eventually got his goal from the penalty spot.
The keeper made a couple of good saves from Lewandowski in the first half and also did superbly to keep out Schmelzer's header after the break.
The left-back made an important block in the first half to keep a shot by Mkhitaryan out, but conceding a penalty shortly after the break undid all his good work.
Did his best to try and track the runs of Lewandowski, but it was doing so effectively that brought an early end to his game as he picked up an injury following a collision with the Pole.
Got caught on a couple of occasions, but otherwise used the ball effectively. He even got a couple of shots away in the second half.
His lack of pace was regularly exposed at the back and he was beaten more often than not when attempting to stand up an opponent.
The right-back's passing was merely hopeful all afternoon and he was also caught in possession by Mkhitaryan, who went on to set up the opening goal seconds later.
Operated primarily from the left wing and was extremely poor in possession. He gave it away far too many times and failed to create anything of note.
Had a minimal impact in the game at either end. He barely received the ball on the right and he lacked the desire to get back and defend.
Found it difficult to make an impression in the centre of the park and was regularly bypassed when Dortmund attacked on the break. He did not offer enough protection.
The Czech received very little service as the lone striker for Frankfurt. He chased down a lot early on but soon grew tired and allowed the BVB defence time on the ball.
Did not see enough of the ball to really make an impact in the whole behind the striker. He had one shot at goal himself but screwed it well wide of the target.