Bundesliga Regular Season - 20

Borussia Dortmund 3 - 2 FT 1. FC Heidenheim

Signal Iduna Park

Match previews and recaps to help you decide which games are worth watching

Futmetrix Verdict
100
FT
Sun, Feb 1
Deutsch
Borussia Dortmund
3-2
1. FC Heidenheim
⚡ Intensity 98
⚖️ Balance 100
🏆 Stakes 56
🎲 Upset 0
Guirassy double rescues Dortmund title charge.

Five-Goal Frenzy Shakes Signal Iduna Park

Must-Watch Futmetrix Score: 100/100. Borussia Dortmund survived a massive scare from bottom-placed Heidenheim to maintain their pursuit of the Bundesliga crown in a match defined by wild momentum swings.

The Opening Act: A Late First-Half Explosion

The match at SIGNAL IDUNA PARK began with a deceptive period of tactical probing, but the Intensity reached a boiling point just before the interval. Borussia Dortmund eventually broke the deadlock in the 44th minute when W. Anton found the net, seemingly putting the hosts in control. However, the Stakes for the visitors were clear as they refused to buckle. In a stunning display of resilience, J. Niehues silenced the home crowd with an equaliser deep into first-half stoppage time. This 45th-minute strike transformed the atmosphere, as the underdog side proved they were not merely in Westphalia to make up the numbers. The rapid exchange of goals set the stage for a second half that would defy all pre-match expectations and league standings.

The Pivot: Niehues Stuns the Yellow Wall

If the end of the first half was dramatic, the start of the second was pure Upset territory. Just three minutes after the restart, J. Niehues struck again, assisted by E. Dinkci, to give 1. FC Heidenheim a shocking lead. Dortmund’s Balance was rattled, and they struggled to find their rhythm despite the midfield efforts of Daniel Svensson. The tactical shift came in the 58th minute with the introduction of M. Beier, who injected much-needed pace into the final third. The pressure finally told in the 68th minute when S. Guirassy converted a penalty to level the scores. Before the visitors could catch their breath, Guirassy struck again only sixty seconds later, finishing a pass from Beier to flip the match on its head and restore the Dortmund lead.

The Resolution: Defensive Grit and Penalty Drama

The closing stages were defined by Dortmund’s attempts to kill the game while Heidenheim threw everything forward. Dortmund dominated possession with 66%, but the narrow margin meant the result remained on a knife-edge. A total of 29 shots throughout the match highlighted the attacking intent from both sides, though BVB’s superior quality eventually shone through. There was one final twist in the 85th minute when S. Guirassy had the chance to complete a hat-trick from the penalty spot, but he missed the target, leaving the hosts to endure a nervous finale. Despite the miss, Dortmund held firm to secure the three points. For Heidenheim, despite the heroic brace from Niehues, this result leaves them rooted to the bottom of the table, while Dortmund keep their title dreams very much alive.

Key Questions

Was the penalty miss the turning point?

No, Serhou Guirassy's 85th-minute miss was nervy, but Dortmund had already completed the comeback. The true turning point was Guirassy's two goals in 60 seconds.

What made Julian Niehues the Man of the Match?

Julian Niehues earned an 8.5 rating by scoring twice, briefly leading a massive upset and proving lethal from limited chances for Heidenheim.

What caused the 5-goal thriller?

The match featured five lead changes and a flurry of three goals in just four minutes surrounding the half-time interval.

What is the Futmetrix Score?

The Futmetrix Score is our 0-100 verdict on how entertaining a match is. We look at intensity, balance, stakes, and star quality to tell you if it's worth your time.

Match Statistics

Possession
66%
34%
Borussia Dortmund 66%
1. FC Heidenheim 34%
Shots
19
10
Borussia Dortmund 19
1. FC Heidenheim 10
Shots on Target
5
3
Borussia Dortmund 5
1. FC Heidenheim 3
Expected Goals (xG)
3.32
1.72
Borussia Dortmund 3.32
1. FC Heidenheim 1.72
Passes
474
249
Borussia Dortmund 474
1. FC Heidenheim 249
Pass Accuracy
83%
71%
Borussia Dortmund 83%
1. FC Heidenheim 71%
Corners
12
3
Borussia Dortmund 12
1. FC Heidenheim 3
Fouls
9
11
Borussia Dortmund 9
1. FC Heidenheim 11
Yellow Cards
1
2
Borussia Dortmund 1
1. FC Heidenheim 2
Red Cards
0
0
Borussia Dortmund 0
1. FC Heidenheim 0

Match Events

M. Honsak 🟨 40'
44' W. Anton
J. Niehues 45'+5
HT
46' 🔄 F. Mane N. Sule
M. Honsak A. Ibrahimovic 🔄 46'
J. Niehues (E. Dinkci) 48'
50' 🟨 W. Anton
58' 🔄 Y. Couto M. Beier
58' 🔄 J. Bellingham C. Chukwuemeka
J. Niehues 🟨 64'
68' S. Guirassy
69' 🔄 K. Adeyemi F. Silva
69' S. Guirassy (M. Beier)
J. Niehues J. Schoppner 🔄 70'
O. H. Traore S. Schimmer 🔄 80'
E. Dinkci M. Kaufmann 🔄 80'
M. Pieringer S. Conteh 🔄 80'
85' S. Guirassy (S. Guirassy)
90'+3 🔄 S. Guirassy S. Ozcan
90'+8 🟨 G. Kobel
FT

Player Cards

Our take on every player in this match

Borussia Dortmund

Goalkeepers
Gregor Kobel
PROVOCATEUR
PROVOCATEUR
1
Fouls Won
1
Fouls Won
1
Duels Won
0
Pens Won
Defenders
Filippo Mané
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
4
Duels Won
0
Pens Won
Waldemar Anton
SNIPER
SNIPER
100%
Conversion
100%
Conversion
1
Goals
1
Shots
Nico Schlotterbeck
STORMTROOPER
STORMTROOPER
2
Shots
2
Shots
0
Goals
0
On Target
Midfielders
Yan Couto
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
58
Total Mins
58
Entry
Jobe Bellingham
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
58
Total Mins
58
Entry
Felix Nmecha
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
95
Total Mins
Started
Entry
Daniel Svensson
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
95
Total Mins
Started
Entry
Forwards
Karim Adeyemi
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
69
Total Mins
69
Entry
Julian Brandt
ARCHITECT
ARCHITECT
5
Key Passes
5
Key Passes
0
Assists
42%
Pass Acc
Serhou Guirassy
CLUTCH HERO
CLUTCH HERO
85
Goal Time
85
Goal Time
Goal
Impact
7.3
Rating
BENCH
Patrick Drewes
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Alexander Meyer
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Niklas Süle
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
50
Total Mins
Started
Entry
Julian Ryerson
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ramy Bensebaini
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Salih Özcan
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
2
Total Mins
Started
Entry
Carney Chukwuemeka
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
37
Total Mins
Started
Entry
Maximilian Beier
SUPER SUB
SUPER SUB
1
Assist
1
Assist
37
Minutes
6.9
Rating
Fábio Silva
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
26
Total Mins
Started
Entry

1. FC Heidenheim

Goalkeepers
Diant Ramaj
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
95
Total Mins
Started
Entry
Defenders
Marnon Busch
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
95
Total Mins
Started
Entry
Patrick Mainka
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
95
Total Mins
Started
Entry
Tim Siersleben
FRIENDLY FIRE
FRIENDLY FIRE
Pen Given
Mistake
Pen Given
Mistake
3
Fouls
6.2
Rating
Midfielders
Haktab Omar Traore
LATE SHIFT
LATE SHIFT
10
Late Mins
10
Late Mins
80
Total Mins
80
Entry
Julian Niehues
HITMAN
HITMAN
2
Goals
2
Goals
2
On Target
8.5
Rating
Niklas Dorsch
FRIENDLY FIRE
FRIENDLY FIRE
Pen Given
Mistake
Pen Given
Mistake
1
Fouls
6.9
Rating
Hennes Behrens
PROVOCATEUR
PROVOCATEUR
4
Fouls Won
4
Fouls Won
9
Duels Won
0
Pens Won
Forwards
Eren Dinkçi
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.9
Rating
Marvin Pieringer
LATE SHIFT
LATE SHIFT
10
Late Mins
10
Late Mins
80
Total Mins
80
Entry
Mathias Honsak
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
45
Total Mins
46
Entry
BENCH
Frank Feller
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Jonas Föhrenbach
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Arijon Ibrahimović
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
6
Duels Won
0
Pens Won
Jan Schöppner
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
25
Total Mins
Started
Entry
Adrian Beck
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Luca Kerber
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Mikkel Kaufmann
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry
Stefan Schimmer
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry
Sirlord Conteh
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry

Head to Head

Date Home Score Away Competition Venue
13/09/2025 1. FC Heidenheim 0 - 2 Borussia Dortmund Bundesliga Voith-Arena
01/02/2025 1. FC Heidenheim 1 - 2 Borussia Dortmund Bundesliga Voith-Arena
13/09/2024 Borussia Dortmund 4 - 2 1. FC Heidenheim Bundesliga SIGNAL IDUNA PARK
02/02/2024 FC Heidenheim 0 - 0 Borussia Dortmund Bundesliga Voith-Arena
01/09/2023 Borussia Dortmund 2 - 2 FC Heidenheim Bundesliga BVB Stadion Dortmund
13/09/2025
Bundesliga Voith-Arena
01/02/2025
Bundesliga Voith-Arena
13/09/2024
Bundesliga SIGNAL IDUNA PARK
02/02/2024
Bundesliga Voith-Arena
01/09/2023
Bundesliga BVB Stadion Dortmund
Borussia Dortmund Win
1. FC Heidenheim Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Bayern München 20 51 74 18 +56 DHamburger SV 2 - 2 Bayern München (31-01-2026)LBayern München 1 - 2 FC Augsburg (24-01-2026)WRB Leipzig 1 - 5 Bayern München (17-01-2026)W1. FC Köln 1 - 3 Bayern München (14-01-2026)WBayern München 8 - 1 VfL Wolfsburg (11-01-2026)
2 Borussia Dortmund 20 45 41 19 +22 WBorussia Dortmund 3 - 2 1. FC Heidenheim (01-02-2026)WUnion Berlin 0 - 3 Borussia Dortmund (24-01-2026)WBorussia Dortmund 3 - 2 FC St. Pauli (17-01-2026)WBorussia Dortmund 3 - 0 Werder Bremen (13-01-2026)DEintracht Frankfurt 3 - 3 Borussia Dortmund (09-01-2026)
3 1899 Hoffenheim 20 42 43 23 +20 W1899 Hoffenheim 3 - 1 Union Berlin (31-01-2026)WWerder Bremen 0 - 2 1899 Hoffenheim (27-01-2026)WEintracht Frankfurt 1 - 3 1899 Hoffenheim (24-01-2026)W1899 Hoffenheim 1 - 0 Bayer Leverkusen (17-01-2026)W1899 Hoffenheim 5 - 1 Borussia Mönchengladbach (14-01-2026)
4 VfB Stuttgart 20 39 37 26 +11 WVfB Stuttgart 1 - 0 SC Freiburg (01-02-2026)WBorussia Mönchengladbach 0 - 3 VfB Stuttgart (25-01-2026)DVfB Stuttgart 1 - 1 Union Berlin (18-01-2026)WVfB Stuttgart 3 - 2 Eintracht Frankfurt (13-01-2026)WBayer Leverkusen 1 - 4 VfB Stuttgart (10-01-2026)
5 RB Leipzig 20 36 38 27 +11 LRB Leipzig 1 - 2 FSV Mainz 05 (31-01-2026)DFC St. Pauli 1 - 1 RB Leipzig (27-01-2026)W1. FC Heidenheim 0 - 3 RB Leipzig (24-01-2026)LRB Leipzig 1 - 5 Bayern München (17-01-2026)WRB Leipzig 2 - 0 SC Freiburg (14-01-2026)
6 Bayer Leverkusen 19 35 38 26 +12 WEintracht Frankfurt 1 - 3 Bayer Leverkusen (31-01-2026)WBayer Leverkusen 1 - 0 Werder Bremen (24-01-2026)L1899 Hoffenheim 1 - 0 Bayer Leverkusen (17-01-2026)LBayer Leverkusen 1 - 4 VfB Stuttgart (10-01-2026)WRB Leipzig 1 - 3 Bayer Leverkusen (20-12-2025)
7 SC Freiburg 20 27 31 33 -2 LVfB Stuttgart 1 - 0 SC Freiburg (01-02-2026)WSC Freiburg 2 - 1 1. FC Köln (25-01-2026)DFC Augsburg 2 - 2 SC Freiburg (18-01-2026)LRB Leipzig 2 - 0 SC Freiburg (14-01-2026)WSC Freiburg 2 - 1 Hamburger SV (10-01-2026)
8 Eintracht Frankfurt 20 27 40 45 -5 LEintracht Frankfurt 1 - 3 Bayer Leverkusen (31-01-2026)LEintracht Frankfurt 1 - 3 1899 Hoffenheim (24-01-2026)DWerder Bremen 3 - 3 Eintracht Frankfurt (16-01-2026)LVfB Stuttgart 3 - 2 Eintracht Frankfurt (13-01-2026)DEintracht Frankfurt 3 - 3 Borussia Dortmund (09-01-2026)
9 Union Berlin 20 24 25 33 -8 L1899 Hoffenheim 3 - 1 Union Berlin (31-01-2026)LUnion Berlin 0 - 3 Borussia Dortmund (24-01-2026)DVfB Stuttgart 1 - 1 Union Berlin (18-01-2026)DFC Augsburg 1 - 1 Union Berlin (15-01-2026)DUnion Berlin 2 - 2 FSV Mainz 05 (10-01-2026)
10 1. FC Köln 20 23 29 32 -3 W1. FC Köln 1 - 0 VfL Wolfsburg (30-01-2026)LSC Freiburg 2 - 1 1. FC Köln (25-01-2026)W1. FC Köln 2 - 1 FSV Mainz 05 (17-01-2026)L1. FC Köln 1 - 3 Bayern München (14-01-2026)D1. FC Heidenheim 2 - 2 1. FC Köln (10-01-2026)
11 FC Augsburg 20 22 24 37 -13 WFC Augsburg 2 - 1 FC St. Pauli (31-01-2026)WBayern München 1 - 2 FC Augsburg (24-01-2026)DFC Augsburg 2 - 2 SC Freiburg (18-01-2026)DFC Augsburg 1 - 1 Union Berlin (15-01-2026)LBorussia Mönchengladbach 4 - 0 FC Augsburg (11-01-2026)
12 Borussia Mönchengladbach 20 21 24 33 -9 DWerder Bremen 1 - 1 Borussia Mönchengladbach (31-01-2026)LBorussia Mönchengladbach 0 - 3 VfB Stuttgart (25-01-2026)DHamburger SV 0 - 0 Borussia Mönchengladbach (17-01-2026)L1899 Hoffenheim 5 - 1 Borussia Mönchengladbach (14-01-2026)WBorussia Mönchengladbach 4 - 0 FC Augsburg (11-01-2026)
13 Hamburger SV 19 19 19 29 -10 DHamburger SV 2 - 2 Bayern München (31-01-2026)DFC St. Pauli 0 - 0 Hamburger SV (23-01-2026)DHamburger SV 0 - 0 Borussia Mönchengladbach (17-01-2026)LSC Freiburg 2 - 1 Hamburger SV (10-01-2026)DHamburger SV 1 - 1 Eintracht Frankfurt (20-12-2025)
14 VfL Wolfsburg 20 19 28 42 -14 L1. FC Köln 1 - 0 VfL Wolfsburg (30-01-2026)LFSV Mainz 05 3 - 1 VfL Wolfsburg (24-01-2026)DVfL Wolfsburg 1 - 1 1. FC Heidenheim (17-01-2026)WVfL Wolfsburg 2 - 1 FC St. Pauli (14-01-2026)LBayern München 8 - 1 VfL Wolfsburg (11-01-2026)
15 Werder Bremen 20 19 22 38 -16 DWerder Bremen 1 - 1 Borussia Mönchengladbach (31-01-2026)LWerder Bremen 0 - 2 1899 Hoffenheim (27-01-2026)LBayer Leverkusen 1 - 0 Werder Bremen (24-01-2026)DWerder Bremen 3 - 3 Eintracht Frankfurt (16-01-2026)LBorussia Dortmund 3 - 0 Werder Bremen (13-01-2026)
16 FSV Mainz 05 20 18 23 33 -10 WRB Leipzig 1 - 2 FSV Mainz 05 (31-01-2026)WFSV Mainz 05 3 - 1 VfL Wolfsburg (24-01-2026)L1. FC Köln 2 - 1 FSV Mainz 05 (17-01-2026)WFSV Mainz 05 2 - 1 1. FC Heidenheim (13-01-2026)DUnion Berlin 2 - 2 FSV Mainz 05 (10-01-2026)
17 FC St. Pauli 20 14 18 34 -16 LFC Augsburg 2 - 1 FC St. Pauli (31-01-2026)DFC St. Pauli 1 - 1 RB Leipzig (27-01-2026)DFC St. Pauli 0 - 0 Hamburger SV (23-01-2026)LBorussia Dortmund 3 - 2 FC St. Pauli (17-01-2026)LVfL Wolfsburg 2 - 1 FC St. Pauli (14-01-2026)
18 1. FC Heidenheim 20 13 19 45 -26 LBorussia Dortmund 3 - 2 1. FC Heidenheim (01-02-2026)L1. FC Heidenheim 0 - 3 RB Leipzig (24-01-2026)DVfL Wolfsburg 1 - 1 1. FC Heidenheim (17-01-2026)LFSV Mainz 05 2 - 1 1. FC Heidenheim (13-01-2026)D1. FC Heidenheim 2 - 2 1. FC Köln (10-01-2026)