+ 6

Full-time: Heidenheim 0-0 Dortmund

A frustrating night for Dortmund, whose three-match winning start to 2024 comes to an end against a spirited Hoffenheim. They stay fourth, while Heidenheim - now unbeaten in six on home soil - move 12 points clear of the relegation zone.
+ 5

That should be that

Malen brings down Pick in his eagerness to wrestle back possession. It's a dangerous position, down in front of the byline, but nothing comes of the set-piece.
+ 1

A whisker away!

Sessa meets Pick's back-post cross, heading the ball agonisingly across goal and just beyond the reach of the diving Schimmer. Four of the five added minutes to find a winner. Malen's OK...

Speed check: The fastest player in the game after 90 minutes

Speed check: The fastest player in the game after 90 minutes
Through high-end camera technology and machine learning, the speed of each player is evaluated in real time. Top speed then means, the fastest measured single frame of a player/game.

Kleindienst makes way

He'll be kicking himself when he sees the replay of that golden chance early in the contest. Beck's on for the remainder...

Malen injury

Malen races into the box to control Maatsen's pass, only to lose his footing after checking back inside. He stays down, complaining of a pulled muscle in his right leg.

Expected Goals

The xGoals value of a club is calculated from the sum of all goal probabilities (goals and shots on goal) of that team. During a match, it’s easy to see whether the club is performing better than expected (goals > xGoals) - or maybe even higher (xGoals > goals).
We should have at least one according to the metric, but as things stand Dortmund are heading for their first goalless draw in the Bundesliga since October 2019.


The Dortmund forward spins towards goal before unleashing a venomous rising drive that forces a full-stretch save from Müller. Much more like it from the big No.9.

No penalty

Bensebaini goes down in the box under Sessa's challenge. He wants a penalty, but the referee is unmoved. Could the BVB sub have stayed on his feet and put a cross in?


Maatsen goes into the book for a tug on Sessa, after being caught out on the break. Put that one down to tired legs...


It's dipping and swerving from the Dortmund defender, who drives a shot at Müller from 18 yards.

Füllkrug header

Routine save for Müller. The Dortmund No.9 just didn't get any real power on the cross.

Talking tactics

Maatsen's moved up to left wing, with Bensebaini slotting in on the left-hand side of the back four. Pohlmann's gone into the No.10 role behind Füllkrug in a 4-2-3-1 formation.

Moukoko makes way

It looks like Dortmund are shifting to three at the back, unless the returning Bensebaini is going to play up front alongside Füllkrug for the final 15 minutes or so!

Worth a pop!

Pohlmann receives a pass from Malen on the edge of the box, but he gets right under his shot and fires over.

Dangerous cross!

Heidenheim get the ball into the Dortmund box, but Pick's touch lets him down and BVB can clear their lines.

There's the change

Beste can't continue. That's a huge blow for Schmidt's team, who will be hoping it's not too serious. Florian Pick is his replacement.

Beste concern

Heidenheim's talisman goes down after landing awkwardly following a headed clearance. He looks to be in real pain...

Keenly contested, but still no goals...


Nervy moment!

The break's on as a Dortmund free-kick is cleared. Busch leads the attack and tries to send Kleindienst through on goal, but just puts too much behind his attempted pass.

BVB up the ante

Dortmund are beginning to take charge as Heidenheim tire. Can they unlock this stubborn defence?


Heidenheim respond with three substitutions of their own - all of the like-for-like variety.

Triple change

That's Bynoe-Gittens' last involvement. He's one of three players to make way. Ole Pohlmann - a regular with the reserves - is on for his Bundesliga debut.



Acrobatic attempt!

Dortmund inject a bit of pace into proceedings as Füllkrug spreads the play to Meunier. His cross is deflected into the path of Bynoe-Gittens, who sends an ambitious overhead attempt straight at Müller from close range.

Tale of the tape

Still very little between the two sides in Heidenheim...
Possession (%)

Distance run (km)

Right idea

Traoré gets away from Maatsen, but his cross is too close to Meyer in the six-yard box. Needed a runner across the box, there.


Maatsen shifts the play inside for Füllkrug. Moukoko helps it on to Malen on the right-hand side of the area, with the Dutchman seeing a rising strike deflected over. Meunier meets the ensuing corner, but snatches at the ball and blazes over.

No changes at the break

Can Heidenheim keep this up, or will BVB find another gear?

Half-time: Heidenheim 0-0 Dortmund

Dortmund's Malen had a goal ruled out for offside, but Heidenheim will be the happier of the two sides. They've got right in the faces of the BVB players, whilst making a nuisance of themselves with crosses from out wide. Kleindienst also flunked a glorious early opening.

Strength in numbers

Malen races to the byline and cuts a pass back for Füllkrug, who's crowded out on the edge of the six-yard area. Great hustle by the home defence.

Off cue

Bynoe-Gittens runs at the Heidenheim defence, before laying off a pass for the overlapping Maatsen. He shimmies into space to cross, but overcooks his delivery with three teammates in the middle.

Nobody home

Bynoe-Gittens swings in a cross that has too much on it for Füllkrug in the Heidenheim area. That just about sums up BVB's luck in the final third this first half.

No joy

Former Dortmund man Maloney tracks back to flick away a dangerous right-wing cross, with Füllkrug lurking at the back post. Sabitzer's initial delivery is cleared, before Bynoe-Gittens stings the palms of Müller from range. BVB's next corner is well dealt with.

Wide threat

Kleindienst wins back possession and earns a corner when his cross his blocked. Beste whips it in, but Dortmund get the ball clear. The visitors really don't look comfortable dealing with crosses into the penalty area.

Heidenheim's best opening


Speed check: The fastest player in the game after 30 minutes

Speed check: The fastest player in the game after 30 minutes
Through high-end camera technology and machine learning, the speed of each player is evaluated in real time. Top speed then means, the fastest measured single frame of a player/game.

Disallowed Dortmund goal!

Relief for Heidenheim as Dortmund have a goal ruled out. Meunier won back possession and found Bynoe-Gittens, who played in Malen. The Dutchman did really well to round Müller and fire home from a tight angle, but he was marginally offside.
Video Assistant RefereeVideo Assistant Referee
DecisionNo goal

Tame effort

Moukoko dribbles into the box, before drawing a routine diving save out of Müller.


Dortmund are living very dangerously as Schöppner connects with Föhrenbach's low centre. He sends it goalwards, but Schlotterbeck gets in the way.

Fearless from Heidenheim

The xGoals value of a club is calculated from the sum of all goal probabilities (goals and shots on goal) of that team. During a match, it’s easy to see whether the club is performing better than expected (goals > xGoals) - or maybe even higher (xGoals > goals).

Goal attempts
4off target
0on target
1off target
0on target

Close again!

Schlotterbeck is first to a dangerous Beste cross, but Heidenheim come straight back at Dortmund. It's another cross from the left that catches out Süle, who is grateful to see Kleindienst send a difficult header wide!

What a chance!

Özcan passes straight to Kleindienst as BVB try to play out from the back. He has the entire BVB goal to aim for, but curls his effort wide.

Full of running

Heidenheim are only seeing 30 percent of the ball, but they're tracking the BVB shirts up and down the pitch. It's going to be very difficult for the visitors to break through, at this rate.

Counter threat

Malen loses out in the Heidenheim half, prompting a break from the home side. Pieringer drives a low cross into the penalty area, but Schlotterbeck is first to it ahead of Dinkci.

Controlled start

Dortmund are dominating possession early on, confidently shifting the ball around between themselves.

Under way!

Heidenheim are unbeaten in their last five home games - can in-form Dortmund end the streak?

Fresh BVB faces

All those Dortmund absentees mean 17-year-old Kjell Wätjen - currently of the club's U19s - gets his first call-up to the senior squad. Ole Pohlmann, 22, could also be handed his Bundesliga debut from the bench. Nineteen-year-old Samuel Bamba - who featured against Augsburg and Mainz prior to the winter break - is another young BVB player among the substitutes in Heidenheim.

Watch: The calm before the storm

More on those teams

Marvin Pieringer replaces Adrian Beck in the No.10 role, in Heidenheim's only change to their draw with Hoffenheim. As for Dortmund, Alexander Meyer continues in goal, while Niklas Süle retains his place in defence ahead of Mats Hummels. Jamie Bynoe-Gittens replaces the injured Jadon Sancho, who joins Julian Brandt, Gregor Kobel and Marco Reus - among others - on the sidelines.

Heidenheim starting line-up

Müller - Traoré, Mainka (c), Gimber, Föhrenbach - Maloney, Schöppner - Dinkçi, Pieringer, Beste - Kleindienst

Heidenheim subs

Eicher, Busch, Siersleben, Theuerkauf, Sessa, Pick, Dovedan, Beck, Schimmer

Dortmund starting line-up

Meyer - Meunier, Süle (c), Schlotterbeck, Maatsen - Malen, Sabitzer, Özcan, Bynoe-Gittens - Moukoko, Füllkrug

Dortmund subs

Lotka, Morey, Bensebaini, Hummels, Wolf, Can, Pohlmann, Wätjen, Bamba

'Never again is now!'

Under this slogan, German professional football is commemorating the victims of National Socialism on and around 27 January, the date of liberation of the Auschwitz concentration camp. This is the 20th year in which the DFL and the Bundesliga and Bundesliga 2 clubs have been involved in the “day of commemoration in German football” in cooperation with the “!Nie Wieder” (“!Never Again”) initiative. In light of current events, the day of commemoration around Matchdays 19 and 20 (26–28 January and 2–4 February) will focus on the topic of antisemitism.

Vote for Goal of the Month!

Harry Kane has claimed the last three awards, but he’s not even up for the vote this time. So, who are you going to pick for January’s Goal of the Month? Watch all 10 contenders here and then cast your vote for your favourite below!

Schmidt's view on Dortmund

"We need to be prepared to deal with Dortmund's flexibility, particularly when they attack. They've scored 10 goals this year, and were clear winners away to Darmstadt and Cologne. We have to be aware of their switch to a 4-4-2 with two strikers, and defend the flanks. It's disastrous against Dortmund to concede possession in your own half. We also need to avoid giving away penalties, and defend them outside our own area."

Terzić's view on Heidenheim

"Heidenheim are playing a great season, something's really brewing there. It's difficult to defeat them at the moment. They are the strongest team in the league from set-pieces and have only suffered two defeats at home."

Perfect start

BVB conceded their first goal of the year in the Bochum win - a Nico Schlotterbeck own goal. They're the only Bundesliga team with a perfect record in 2024.

Probable line-ups

Who's set to play this weekend? Who's going to miss out? Keep up to date with all the latest team news right here!

Watch: Dortmund 2-2 Heidenheim - previous meeting

Dortmund blew a two-goal lead as Heidenhiem fought back to pick up their first-ever Bundesliga point on Matchday 3.

Hoffenheim 1-1 Heidenheim - highlights

Promoted Heidenheim put further distance between themselves and the relegation zone after taking a point off Hoffenheim on Matchday 19. The promoted club are currently 10th in the table, with an 11-point buffer on the bottom three.

Watch: Dortmund 3-1 Bochum - highlights

Niclas Füllkrug's hat-trick made it three wins from three to start 2024 for Dortmund. They're also back in the top four, having started the year with six points to make up on RB Leipzig, now three points back in fifth.

Hello and welcome!

Thanks for joining us for build-up and live coverage of this Matchday 20 fixture between Heidenheim and Dortmund.