Goals: 1-0 Joelinton (44’), 1-1 Pulisic (84’)
Red card: Diallo (76’)
Dortmund dominated for long spells of an open first half with Pulisic and Marco Reus their most creative outlets, but Hoffenheim created the clearer openings. Former BVB midfielder Leonardo Bittencourt spurned the first of them, denied by a point-blank save from Roman Bürki after a driving run and cross from freshly minted Germany international Nico Schulz. Joelinton glanced another probing Schulz cross wide, before breaking the deadlock late in the half with an instinctive low finish following some uncertain BVB defending.
Hoffenheim picked up where they left off at the start of the second half as Andrej Kramaric fired agonisingly wide from close range and - along with Ermin Bicakcic - had a goal ruled out for offside. Shinji Kagawa went within a whisker of poking in a Pulisic cross at the other end, but Dortmund’s chances of turning the tide were dealt a severe blow when Abdou Diallo saw red for a tug on Kramaric. BVB were much improved with ten men, though, Pulisic meeting Reus’ cross to level, three days after scoring the winner against Club Brugge in the UEFA Champions League. Ishak Belfodil should have won it for Hoffenheim in added time, but the substitute contrived to blaze over from less than a metre out.
- Pulisic made his 101st Dortmund appearance, three days after celebrating his 100th on the same day he turned 20 with a goal in the Champions League. He has scored two goals in four outings against Hoffenheim.
- Joelinton scored his first Bundesliga goal on his fourth appearance in the German top flight. The Brazilian made his debut on 18 December 2015, but spent the following two seasons on loan at Rapid Vienna.
- Hoffenheim’s Joshua Brenet made his full Hoffenheim and Bundesliga debut, following his summer transfer from PSV Eindhoven.
- Kagawa made his first Bundesliga start since 10 February 2018.
- Diallo was sent off for the second time in his professional career and first in the Bundesliga.
Hoffenheim: Baumann – Posch, Vogt (c), Bicakcic – Brenet, Bittencourt, Grillitsch, Zuber (Nordtveit 69'), Schulz – Kramaric (Szalai 78'), Joelinton (Belfodil 86’)
Unused subs: Kobel, Akpoguma, Grifo, Belfodil, Nelson
Absentees: Adams (ankle), Amiri (foot), Hübner (concussion)
Coach: Julian Nagelsmann
Dortmund: Bürki – Piszczek, Akanji, Diallo, Schmelzer – Dahoud (Delaney 60'), Witsel, Kagawa (Philipp 69') – Pulisic, Wolf (Sancho 60'), Reus (c)
Unused subs: Hitz, Zagadou, Hakimi, Bruun Larsen
Absentees: Alcacer (thigh), Guerreiro (muscle), Toprak (thigh), Götze (technical)
Coach: Lucien Favre
WATCH: Pulisic says Dortmund are still getting the hang of things.