Tactics and line-up:
There was just the one change made by Markus Gisdol, with Sebastian Rudy coming into the side for Steven Zuber. It was a like-for-like swap with the Germany international starting in an unfamiliar left-wing position. Sven Schipplock continued to lead the line in a 4-2-3-1 formation when attacking, which switched to the usual 4-4-2 without the ball, with Firmino pushing forward and Volland and Rudy dropping back. Counterattacking was very much the order of the day for TSG, as the home side were allowed time on the ball in their own half, before facing aggressive pressing once they crossed the half-way line.
Gisdol opted to use his first change during the interval, bringing on Anthony Modeste for Schipplock, who had struggled to get into the game. The remaining two substitutes came with just over ten minutes on the clock. Sebastian Rudy and Pirmin Schwegler were replaced by Tarik Elyounoussi and Sejad Salihovic to give the Hoffenheim midfield a different look.
17th minute:GOAL for Dortmund. 1-0: Pierre-Emerick Aubameyang has space to cross on the right flank and Ilkay Gündogan is able to head in at the back post.
37th minute: A first chance of note for Hoffenheim. The ball drops for Schipplock on the edge of the box and the striker hits it first time, but the ball zips wide of the post.
47th minute: So close! Right at the start of the second half, TSG win a free kick on the edge of the box after a foul on Pirmin Schwegler. Rudy dinks it over the wall, but Mats Hummels decided to run back towards the line and at the last second manages to head the ball behind for a corner. That was going in!
51st minute: Big block from Niklas Süle! The young defender puts his body on the line as Henrikh Mkhitaryan unleashes a shot in the box. The danger gets cleared for a corner, but Dortmund have the ball in the back of the net from an Aubameyang header. The flag is up though. Offside, albeit an incorrect decision. Let-off for TSG.
61st minute: Important save from Oliver Baumann to keep Hoffenheim in the game! Aubameyang shows off his electric pace to pull away from Kim and fire on goal, but the TSG no.1 is on hand to keep it out.
63rd minute: Baumann again! Superb reflex save from the Hoffenheim keeper to deny Hummels, who powerfully heads on target from a corner. It would have sneaked under the bar too. Great stop!
75th minute: This game would be done and dusted if not for Oliver Baumann. He produces yet another fine stop, this time tipping Aubameyang's shot onto the post.
85th minute: Penalty!? Subotic misses his clearance and Elyounoussi latches onto the ball in the box. Hummels slides in, doesn't get any of the ball and the Norwegian attacker goes down over the prone BVB defender. You've seen them given, but the referee says no. Salihovic gets booked for his protests.
93rd minute: Salihovic lines up a free kick from well over 30 yards. The Bosnian tries his best to pick out the top corner, but it was never troubling Langerak. That looks to be that.
Moment of the match:
Markus Gisdol took something of a time-out during the game to try and adjust his side's approach. While Dortmund's Sebastian Kehl was receiving treatment, the TSG boss rallied several of his players on the sidelines and handed out a few tactical notes. Sadly, it didn't have the desired effect.
Number of the match: 118.14 and 118.12
The two sides covered almost exactly the same distance over the 90 minutes. TSG fell just 20 metres short of Dortmund's running efforts in the end.