Suat Serdar (Schalke) latches onto a pass inside the box, steps inside his marker and smacks a shot against the left post.
Referee Christian Dingert points to the centre spot to indicate that the goal stands after the VAR review. That prompts big celebrations from the Hoffenheim players.
The Hoffenheim players celebrate the goal but the referee immediately signals a VAR review. Let's see what happens. Big moment in the game.
Goal! Andrej Kramaric displays great vision and sends a pass to Nadiem Amiri (Hoffenheim), who shows brilliant composure inside the box to bury the ball from close range in the back of the net. The score is 1:4.
Nico Schulz goes off the pitch and Joshua Brenet (Hoffenheim) comes on.
Jonas Carls (Schalke) crosses the ball into the box, but one of the defending players averts the threat.
Kerem Demirbay (Hoffenheim) sends a beautiful cross into the penalty area, but the opposition's defence manages to clear the ball to safety.
Goal! Ishak Belfodil swings the ball deep into the box and finds Adam Szalai (Hoffenheim) unmarked, and his close-range header flies past the keeper into the bottom left corner. 1:3.
Schalke are seeing far more of the ball now.
Goal! Daniel Caligiuri (Schalke) wins the battle of wills and sends an unstoppable penalty past Oliver Baumann into the roof of the net.
Daniel Caligiuri (Schalke) is going to take the penalty!
Pavel Kaderabek (Hoffenheim) fouls an opponent. At least that's what referee Christian Dingert signals. Schalke are awarded a penalty! The opposing players are protesting, but the referee had an easy-decision to make.
The referee awards a corner and Daniel Caligiuri (Schalke) goes over to take it.
Daniel Caligiuri (Schalke) fires the ball from the free kick, directing it towards the top left corner, but the goalkeeper stretches to punch the ball away. What an excellent save. Schalke have been awarded a corner kick.
Referee Christian Dingert sees the trip by Kerem Demirbay (Hoffenheim) and doesn't hesitate to blow his whistle. Another situation results in a direct free kick for Schalke.
Julian Nagelsmann has decided to substitute Benjamini Hubner and he is replaced by Adam Szalai (Hoffenheim).
Ishak Belfodil (Hoffenheim) looks to break free, but an opposing player clears the ball away. The ball is off of the pitch and it's a goal kick for Schalke.
Daniel Caligiuri (Schalke) takes the free kick but it is cleared by the first defender.
Benjamini Hubner (Hoffenheim) brings down his opponent with a very late tackle. Schalke win a free kick. It's a promising situation for a direct shot.
Salif Sane (Schalke) is moving okay again after that injury scare.
Salif Sane (Schalke) 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.
The second half has just started.
The referee blows his whistle for half-time, bringing to a close the first 45 minutes of the match.
2 additional min. will be played.
Goal! Kerem Demirbay plays a pass to the feet of Andrej Kramaric (Hoffenheim), and he shoots into the bottom left corner from inside the box. It's 0:2.
Jonas Carls (Schalke) swings a cross into the box, but it's far too close to Oliver Baumann, who smothers the ball.
Daniel Caligiuri (Schalke) earns the yellow card.
Oliver Baumann leaps to intercept the corner kick from Daniel Caligiuri (Schalke).
A fine lofted pass into the box, sent by Jonas Carls (Schalke), is intercepted by the opposition's defence. Schalke will take a corner kick.
Nadiem Amiri (Hoffenheim) hasn't suffered any serious injury which would see him leave the pitch. He's back in the game now.
The game is interrupted now, Nadiem Amiri (Hoffenheim) picks up a knock and the physio has to come on.
Pavel Kaderabek (Hoffenheim) attempts to find the head of one of his teammates with a promising cross into the box, but a defender outjumps the attackers and averts the threat.
Daniel Caligiuri (Schalke) whips a long ball in from the free kick which is intercepted by Oliver Baumann.
Kerem Demirbay (Hoffenheim) takes the corner, but the opposition's defence is ready and clears the ball to safety.
Kevin Vogt (Hoffenheim) dinks a cross into the box in an attempt to find one of his teammates, but the defence manages to clear. The linesman makes the right call and Hoffenheim will have a corner.
Guido Burgstaller (Schalke) whips the ball into the penalty area, but one of the defenders is alert and spanks it away.
Benjamini Hubner (Hoffenheim) is able to continue to play.
Christian Dingert shows the yellow card to Kerem Demirbay (Hoffenheim) for a heavy challenge.
Benjamini Hubner (Hoffenheim) is asking for medical treatment, but he will have to leave the pitch in order to receive help from the physio.
Breel Embolo (Schalke) sees a yellow card. He should be more careful because one more challenge like that could result in a red card.
A dangerous looking corner kick from Daniel Caligiuri (Schalke) is cleared to safety by the defence.
Suat Serdar (Schalke) fails to send a pass into the box as his effort is cut out. Schalke force a corner. Their opponents will face another attacking threat.
Breel Embolo (Schalke) reacts well to latch onto a rebound inside the box, but his shot is well blocked.
Ishak Belfodil (Hoffenheim) finishes his beautiful individual effort with a superb strike from inside the box. Alexander Nubel is just a bystander as the ball flies into the right side of the goal. The score is 0:1.
Guido Burgstaller (Schalke) collects the ball from the free kick and immediately sends his close-range effort narrowly wide of the left post!
Christian Dingert shows a yellow card to Benjamini Hubner (Hoffenheim) for his blatant foul.
Daniel Caligiuri (Schalke) attempts to find one of his teammates with a sweet pass into the box, but one of the defending players reacts well and intercepts the effort.
Wasted effort! Andrej Kramaric (Hoffenheim) drives to the edge of the box after picking up a rebound, but his shot is tame and bends well wide of the left post.
Oliver Baumann gets a well deserved ovation! Daniel Caligiuri (Schalke) produces a decent first-time strike towards the bottom right corner, but the goalkeeper is positioned well to block it. Nice goalkeeping skills.
Schalke work the corner short. The ball is passed to a nearby teammate.
Daniel Caligiuri (Schalke) smashes the ball from the mid-range free-kick straight into the defensive wall. The ball is out of play and the linesman points at the corner flag. Corner to Schalke.
Benjamini Hubner (Hoffenheim) does well to dispossess the attacker with a slide tackle, but the referee blows his whistle for a foul. Schalke win a free kick.
The free kick from long range, taken by Hoffenheim, is intercepted by one of the defenders.
Christian Dingert blows his whistle for a foul after Weston McKennie (Schalke) hacks down one of his opponents. A free kick has been awarded to Hoffenheim.
Daniel Caligiuri (Schalke) delivers a long ball, but it lacks enough power to reach his teammates and is intercepted by one of the defenders.
Pavel Kaderabek (Hoffenheim) flights in the cross, but the defender is alert and clears to safety.
Daniel Caligiuri (Schalke) takes the corner which is cleared by the opposition's defence.
Daniel Caligiuri (Schalke) finds himself in a promising position after receiving a beautiful cross from the side, but the opposition defence is ready and one of the defenders averts the threat with a quick interception. Schalke win a corner.
The free kick is taken short by Hoffenheim.
Guido Burgstaller (Schalke) handles the ball inside the penalty area. Hoffenheim have a free kick.
The ball is cleared after Daniel Caligiuri (Schalke) attempted to dribble past an opposing player.
Nico Schulz (Hoffenheim) produces a dangerous lofted cross into the box which is intercepted.
The players are on the pitch and Schalke will have the kick-off.
Christian Dingert was nominated as the referee for this game.
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.