Borussia Dortmund have grabbed three valuable points against Hoffenheim, thanks to a late winner from Christian Pulisic. Hoffenheim had taken the lead and controlled much of the match, but couldn't take their chances.
Borussia Dortmund 2-1 Hoffenheim
(Aubameyang 63' pen, Pulisic 89' — Uth 21')
It was a win reminiscent of Peter Stöger's time at Cologne for Borussia Dortmund. The hosts had less of the ball and probably the lesser chances, but came out on top after 90 minutes against Julian Nagelsmann's Hoffenheim.
Mark Uth had put the guests ahead mid-way through the first half, after two simple passes unpicked Dortmund's defense. Hoffenheim had much more of the ball in the first 45 and some jeers were audible from the 81,000 crowd as the home side walked off for half time.
But after the break, Dortmund took the chances that came their way. First, Shinji Kagawa won a penalty that Pierre-Emerick Aubameyang converted with consummate ease. With the game apparently headed for a 1-1 draw, save for the odd Hoffenheim bid to break the deadlock, suddenly Christian Pulisic (above, left) pounced. Arriving in the box to meet a clever pass from Kagawa, Pulisic was unfazed by the bouncing ball, clipping it past keeper Oliver Baumann and then volleying home with his left foot. The freshly-minted US national team's player of the year capped a decent week with a highly valuable goal for his club.
Three points mean that Dortmund will winter in at least fifth position, depending on the results RB Leipzig and Bayer Leverkusen can manage on Sunday. Overnight, at least, BVB climb to third in the league. Hoffenheim, meanwhile, drop to seventh and will stay there regardless of what transpires on Sunday.
You can re-live the game as it happened with our live updates below.
90+4' — Double chance missed by Aubameyang, first to head it home and then to shoot after he collected the loose ball and dribbled back towards goal. As he misses and pulls his jersey over his head, the ref blows for full time.
90+2' — Neven Subotic on for Pulisic, who gets a big pat on the posterior from Peter Stöger. Now Stöger just wants to bring it home.
89' — GOAL! 2-1 Dortmund. Christian Pulisic celebrates his US national team player of the year award with a huge goal. He picked up the ball on the right side of the box, juggled the bouncing ball past Oliver Baumann and then nestled it in the unguarded net. Dortmund lead, arguably against the recent run of play.
88' — Dortmund nearly unpick Hoffenheim with a breakaway but can't find the final pass. Kevin Vogt saved the day.
86' — Weigl fouls Hübner near the touch line. Arguably lucky to escape a yellow card, just a chat from the referee.
83' — Kerem Demirbay tries his luck from the edge of the box, but curls it high and wide. Hoffenheim pressing in the closing phases.
78' — Pavel Kaderabek, who's been impressive down the right all evening, fires wide of the far post from a tough angle. Big chance for Hoffenheim to go in front.
70' — Another attacking switch from Nagelsmann. Adam Szalai comes on for scorer Mark Uth.
69' — Stadium announcer comes on the mic to give the attendance figures: 81,000 or so. Easy to forget what an astonishing haul BVB can pull in every fortnight.
65' — Andrej Kramaric has joined the fray for Hoffenheim, replacing Serge Gnabry. He was already preparing to come on prior to the penalty and equalizer.
63' — GOAL! Aubameyang takes the spot kick. And he slots it home calmly, into Baumann's bottom left corner. The Hoffenheim goalie went the wrong way.
62' — Penalty Dortmund. Stefan Posch fouls Shinji Kagawa in the box. Clearcut call.
60' — Here are some stat updates: Dortmund have reclaimed some of the share of possession, now Hoffenheim can only boast 58 percent of the ball.
57' — The tempo's picking up now, with both sides moving the ball forward more quickly. The final ball has been lacking, however.
48' — Drama on Roman Bürki's goal line, as he failed to gather a low shot from Amiri. However, he was able to get to the ball and clear in the end.
Second half begins...
HT analysis: A few jeers were audible as Dortmund walked back into the tunnel. Fans have a right to be upset. Not only do Hoffenheim lead, they had considerably more of the ball in the early phases. However, Dortmund's game has picked up in the last 10 minutes or so, which might give Peter Stöger some positive ammunition for his half time team talk. Yarmolenko has been particularly busy down the right for the hosts, but so far he's not been able to deliver the end product.
45' — Dortmund, especially Sokratis, want a penalty for handball. Waved away by the ref.
44' — Incredible chance on the break for Dortmund and they manage to waste it. Pulisic put Yarmolenko through; he had the choice between a shot and a pass on to Aubameyang. Instead, he got the ball caught under his feet and was then shut down by Hoffenheim's back line.
42' — Dortmund corner, floated in by Guerreiro. But Demirbay clears at the near post and Julian Weigl is penalized for fouling the Hoffenheim player in his bid to win the ball.
41' — The ref halts play as goal-scorer Mark Uth is clutching his right arm and shoulder. He landed on it awkwardly.
35' — Offside flag pulls back Pierre-Emerick Aubameyang. Hoffenheim can breathe once more.
33' — Chance for Sokratis from a Dotmund set piece. A long free kick lofted in and Sokratis' attempt at a header can't find the target.
30' — Hoffenheim have had almost two-thirds of the ball in front of the Dortmund fans. Guess that's what you get for swapping an Austrian grafter for a Dutch technician. Although, to be fair, Dortmund have seven shots to Hoffenheim's three.
28' — Steven Zuber shoots from range looking to double Hoffenheim's lead. Not a real threat to Bürki though.
21' — GOAL! Mark Uth's on target again for Hoffenheim. Dortmund carved open down the right by a single through ball from Amiri, Kaderabek lays it square and Uth is left with a real tap-in. Hoffenheim lead 1-0.
19' — Gnabry tests Roman Bürki in the Dortmund goal, cutting inside from the right and shooting low. Bread and butter stuff for the Swiss keeper, though.
16' — Yarmolenko bounds into the box, shimmies and eventually gets off a shot. It's deflected over the bar. Aubameyang wanted the ball played square.
14' — Shot on target for Pierre-Emerick Aubameyang. Fine work from Weigl to win the ball and kick off the counterattack. Yarmolenko delivered the low cross from the right, and Auba tried to flick it home with panache. An easy save for Baumann.
12' — Demirbay fouls Julian Weigl in the middle of the park and receives a stern talking to, but no booking.
9' — Save Baumann! Dortmund break after a Hoffenheim attack, and Christian Pulisic fires off a shot looking for the far post. Oliver Baumann got down swiftly to smother it.
7' — Looks like the afternoon games used up our quota of early excitement in front of goal. It's all rather leisurely so far.
3' — Christian Pulisic is brought down with a fairly clear shirt-tug. But ref Harm Osmers elects to keep his cards in his pocket early.
— Borussia Dortmund have Yarmolenko, Aubameyang and Christian Pulisic at the sharp end, Weigl, Kagawa and Guerreiro in midfield and then four at the back.
— Hoffenheim take to the pitch with their typical three center backs, Mark Uth and Serge Gnabry lead the line in the absence of Sandro Wagner. Plenty will rest on Kerem Demirbay's shoulders in midfield, as usual.
— Welcome to our live ticker following Saturday evening's "Topspiel," with Borussia Dortmund at home to Hoffenheim. Let's whet your whistle with the starting lineups.