A piece of footballing magic! Breel Embolo (Schalke) collected a precise pass and fired a shot towards the bottom right corner, bouncing in off the post. The goalkeeper was helpless.
GOAL! A cross into the box is headed down by Jacob Bruun Larsen and Axel Witsel (Dortmund) does brilliantly to get to the ball and fire home. 2:3.
Lucien Favre decides to make a substitution. Mario Gotze will be replaced by Jacob Bruun Larsen (Dortmund).
Sebastian Rudy (Schalke) takes the corner but it's cleared.
The ball rebounds off the defender into the path of Guido Burgstaller (Schalke), who immediately strikes for goal from inside the box but sends it a whisker over the bar.
Here comes a substitution. Christian Pulisic (Dortmund) is brought on as a substitute for Raphael Guerreiro.
Huub Stevens has decided to introduce fresh legs, with Jeffrey Bruma (Schalke) replacing Weston McKennie.
Sebastian Rudy (Schalke) steps up to send the ball in.
Breel Embolo (Schalke) races towards goal but the defender gets back well to make a challenge. Schalke will have a chance to score from a corner kick.
A yellow card for a tackle by Weston McKennie (Schalke). Felix Zwayer doesn't hesitate at all to make this decision.
Mario Gotze (Dortmund) commits a rough foul. Felix Zwayer stops the game and makes a call.
The manager has decided to make a substitution and Daniel Caligiuri walks off the pitch to be replaced by Sebastian Rudy (Schalke).
Marius Wolf (Dortmund) takes out his opponent with a nasty slide tackle and receives a straight red card from the referee!
Daniel Caligiuri (Schalke) scores from a free kick after smashing the ball over the defensive wall and into the top left corner of the goal!
Marco Reus (Dortmund) makes an awful challenge on his opponent and the referee shows him a deserved red card! Schalke are awarded a free kick from a dangerous position.
The Dortmund players are exchanging some short passes to try and open up the opposition’s defence and hit them swiftly on the break.
Substitution. Paco Alcacer (Dortmund) in, Thomas Delaney out.
Guido Burgstaller (Schalke) gives away a foul for a clumsy challenge. Referee Felix Zwayer saw the whole situation.
Marius Wolf (Dortmund) flights in the cross, but the defender is alert and clears to safety.
Jadon Sancho (Dortmund) decides to take a short corner instead of crossing into the box.
Abdou Diallo (Dortmund) delivers a promising cross into the box, but it's cleared. Dortmund have a corner.
The whistle blows and Felix Zwayer starts the second half.
The referee blows his whistle for half-time, bringing to a close the first 45 minutes of the match.
Breel Embolo (Schalke) makes a really bad tackle on his opponent and is relieved when the referee only shows him a yellow card.
Raphael Guerreiro (Dortmund) delivers a fine ball into the box from a free kick. However, the opposition's defence make sure none of his teammates get a challenge in on the goalkeeper.
The referee blows his whistle after Matija Nastasic (Schalke) does a good impression of a basketball player and handles the ball. Dortmund have a free kick from a promising distance.
4 additional min. will be played.
The resulting corner from Bastian Oczipka (Schalke) is cleared by the opposition's defence.
Marco Reus (Dortmund) is offside and the linesman raises his flag.
Dortmund control the tempo of the game by exchanging some accurate short passes.
Jadon Sancho (Dortmund) sends the corner into the box, but Alexander Nubel intercepts it and averts the threat.
Suat Serdar (Schalke) is shown a yellow card for a late challenge.
Daniel Caligiuri (Schalke) has tested the patience of referee Felix Zwayer and goes into the book for a previous late challenge.
Handball by Thomas Delaney (Dortmund).
Daniel Caligiuri takes over corner duties and expertly finds Salif Sane (Schalke), who jumps highest and coolly plants a bullet header into the left side of the goal. The score is now 1:2.
Daniel Caligiuri (Schalke) takes the corner.
A lofted cross from Daniel Caligiuri (Schalke) is unsuccessful as the opponent's defence quickly clears the ball out of the penalty area. Schalke force a corner. They send men into the box.
Salif Sane (Schalke) is able to continue to play.
Salif Sane (Schalke) is clearly asking for some medical attention with his painful gestures. The extent of his injury is yet to be discovered.
Mario Gotze (Dortmund) gets to the rebound and shoots, but the effort is blocked.
Jadon Sancho (Dortmund) goes on a solo run, but he fails to create a chance as an opposition player blocks him.
Goal! Daniel Caligiuri (Schalke) wins the battle of wills and sends an unstoppable penalty past Roman Burki into right side of the goal.
Daniel Caligiuri (Schalke) is heading towards the penalty spot to take it.
Referee Felix Zwayer awards a PENALTY after the VAR review!
It's been a while since that incident in the box, but the ref must have received some information as he makes the VAR signal. He's going to review that earlier penalty shout! What a chance for Schalke.
Julian Weigl (Dortmund) appears to handle the ball in the box, but the referee wasn't in the best position. Let's see what he decides.
Jadon Sancho (Dortmund) seems to have picked up a minor injury, but it looks like he will be able to continue playing.
Jadon Sancho (Dortmund) is being forced to leave the pitch in order to receive medical treatment and his team will play with a man short for a few minutes.
Goal! Mario Gotze (Dortmund) ran onto a clever lofted pass from Jadon Sancho and easily beat the keeper with a header into the top right corner from close range. 1:0.
Axel Witsel picks out Thomas Delaney (Dortmund), who makes a total mess of his shot from mid-range and sends the ball high over the bar.
Matija Nastasic (Schalke) takes a mid-range free kick and tries to find one of his teammates with a cross, but the keeper climbs high and gets to it first, collecting the ball with ease.
A clumsy foul by Julian Weigl (Dortmund) and Felix Zwayer blows his whistle. Schalke get a free kick.
The referee blows his whistle as Bastian Oczipka (Schalke) was too aggressive in his challenge. Dortmund have been awarded a free kick.
The ball is cleared after Breel Embolo (Schalke) attempted to dribble past an opposing player.
Mario Gotze (Dortmund) sends a quick through ball into space for his teammate who is lurking close to the offside line, but one of the defenders intercepts and clears the danger.
The match has just started.
The players are out at last! Dortmund will take the kick-off.
Felix Zwayer will referee today's match.
Good afternoon, ladies and gentleman! Welcome to our live text commentary, where we will provide you with instant updates of everything that happens in the match.