Bundesliga Regular Season - 30

1899 Hoffenheim 2 - 1 FT Borussia Dortmund

PreZero Arena

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

Futmetrix Verdict
100
FT
Sat, Apr 18
Deutsch
1899 Hoffenheim
2-1
Borussia Dortmund
⚡ Intensity 93
⚖️ Balance 56
🏆 Stakes 67
🎲 Upset 10
Stoppage-time penalty seals late drama.

Kramarić's Penalty Brace Shatters Dortmund in Late-Season Thriller

Must-Watch Futmetrix Score: 100/100. A spectacular showcase of late drama that cements the hosts' European ambitions while dealing a bitter blow to the visitors' momentum.

Tactical Trenches

A tense atmosphere blanketed the PreZero Arena as 1899 Hoffenheim and Borussia Dortmund locked horns in a highly anticipated late-season fixture. The ambitious visitors edged possession with 54 percent, but they found it incredibly difficult to penetrate a well-drilled and incredibly stubborn home defensive line. The Intensity of the opening exchanges kept clear-cut scoring chances to an absolute premium. Instead of free-flowing attacking football, this quickly became a grueling war of attrition in the midfield battleground. The vital breakthrough finally arrived under controversial circumstances just before the halftime interval. A. Kramaric stepped up confidently in the 41st minute to coolly convert from the penalty spot, sending the passionate home crowd into absolute raptures. The Balance of the match shifted completely.

The Super-Sub Strike

Searching desperately for answers, the second-placed visitors pushed much higher up the pitch, injecting new attacking life into their offensive phases. The Stakes were exceptionally high, knowing that Champions League qualification offers zero room for complacency. Despite relentless Dortmund pressure, Leon Avdullahu put in a truly monumental shift in midfield for the determined hosts, constantly breaking up play. However, intelligent tactical tweaks eventually paid massive dividends for the away side. A brilliant combination between two impactful substitutes broke the home resistance. R. Bensebaini delivered a glorious assist in the 87th minute, perfectly locating S. Guirassy who smashed home a highly dramatic equalizer. It genuinely felt like a crushing late blow to a home side that had defended so incredibly well.

Last Gasp Heroics

Just as the fixture looked entirely destined to end in a hard-fought draw, the script was spectacularly ripped into pieces. Showcasing a massive Upset Factor against higher-ranked opposition, the home side flatly refused to settle for a single point. Deep into eight chaotic minutes of stoppage time, panic erupted in the visitor's penalty area once again. The referee dramatically pointed to the spot, offering Kramarić a golden chance to secure all three points. The Croatian forward made no mistake, dispatching his second penalty to seal a phenomenal 2-1 victory. This monumental result firmly solidifies their strong grip on sixth place, keeping their Conference League dreams alive. Meanwhile, Dortmund must quickly dust themselves down after reeling from this incredibly painful conclusion.

Key Questions

How dramatic was the late winner by Andrej Kramarić?

It was completely breathtaking. His nerveless penalty strike in the 98th minute rescued all three points just when a draw seemed absolutely inevitable for the hosts.

Did 1899 Hoffenheim deserve the late equalizer?

Actually, it was Borussia Dortmund who scored the late equalizer through S. Guirassy in the 87th minute, before Hoffenheim struck back with their stoppage-time winner.

What does this mean for 1899 Hoffenheim's season?

This thrilling victory heavily bolsters their European aspirations, keeping them firmly anchored in sixth position and right on track for Conference League qualification.

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
46%
54%
1899 Hoffenheim 46%
Borussia Dortmund 54%
Shots
13
7
1899 Hoffenheim 13
Borussia Dortmund 7
Shots on Target
4
3
1899 Hoffenheim 4
Borussia Dortmund 3
Expected Goals (xG)
2.11
0.57
1899 Hoffenheim 2.11
Borussia Dortmund 0.57
Passes
379
434
1899 Hoffenheim 379
Borussia Dortmund 434
Pass Accuracy
82%
82%
1899 Hoffenheim 82%
Borussia Dortmund 82%
Corners
4
3
1899 Hoffenheim 4
Borussia Dortmund 3
Fouls
14
11
1899 Hoffenheim 14
Borussia Dortmund 11
Yellow Cards
2
3
1899 Hoffenheim 2
Borussia Dortmund 3
Red Cards
0
0
1899 Hoffenheim 0
Borussia Dortmund 0

Match Events

31' 🟨 W. Burger
41' A. Kramaric
N. Sule R. Bensebaini 🔄 42'
HT
F. Silva S. Guirassy 🔄 60'
60' 🔄 B. Toure A. Prass
60' 🔄 W. Burger G. Promel
M. Sabitzer S. Inacio 🔄 71'
D. Svensson J. Brandt 🔄 72'
72' 🔄 Bernardo R. Hranac
77' 🟨 A. Prass
83' 🔄 T. Lemperle M. Moerstedt
N. Schlotterbeck 🟨 84'
S. Guirassy (R. Bensebaini) 87'
J. Ryerson 🟨 90'+7
90'+8 A. Kramaric
S. Inacio 🟨 90'+10
90'+11 🟨 C. Ilzer
FT

Player Cards

Our take on every player in this match

1899 Hoffenheim

Goalkeepers
Oliver Baumann
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Defenders
Vladimir Coufal
ARCHITECT
ARCHITECT
2
Key Passes
2
Key Passes
0
Assists
27%
Pass Acc
Ozan Kabak
ARCHITECT
ARCHITECT
2
Key Passes
2
Key Passes
0
Assists
24%
Pass Acc
Albian Hajdari
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Bernardo
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
72
Total Mins
72
Entry
Midfielders
Leon Avdullahu
MAGNET
MAGNET
69
Activity
69
Activity
61
Passes
8
Duels
Wouter Burger
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
Andrej Kramarić
CLUTCH HERO
CLUTCH HERO
90
Goal Time
90
Goal Time
Penalty
Impact
7.6
Rating
Fisnik Asllani
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Bazoumana Touré
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
Forwards
Tim Lemperle
LATE SHIFT
LATE SHIFT
7
Late Mins
7
Late Mins
83
Total Mins
83
Entry
BENCH
Luca Philipp
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Robin Hranáč
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
29
Total Mins
Started
Entry
Kevin Akpoguma
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Alexander Prass
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
41
Total Mins
Started
Entry
Grischa Promel
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
41
Total Mins
Started
Entry
Muhammed Damar
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Cole Campbell
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Max Moerstedt
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
18
Total Mins
Started
Entry
Ihlas Bebou
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Borussia Dortmund

Goalkeepers
Gregor Kobel
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Defenders
Niklas Sule
FRIENDLY FIRE
FRIENDLY FIRE
Pen Given
Mistake
Pen Given
Mistake
1
Fouls
6.3
Rating
Waldemar Anton
WALL
WALL
0
Dribbled Past
0
Dribbled Past
3
Tackles
70%
Duel Win %
Nico Schlotterbeck
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Midfielders
Julian Ryerson
FRIENDLY FIRE
FRIENDLY FIRE
Pen Given
Mistake
Pen Given
Mistake
1
Fouls
7.2
Rating
Marcel Sabitzer
PROVOCATEUR
PROVOCATEUR
4
Fouls Won
4
Fouls Won
4
Duels Won
0
Pens Won
Jobe Bellingham
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Daniel Svensson
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
72
Total Mins
72
Entry
Forwards
Carney Chukwuemeka
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
5
Duels Won
0
Pens Won
Maximilian Beier
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
101
Total Mins
Started
Entry
Fábio Silva
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
BENCH
Alexander Meyer
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Ramy Bensebaini
SUPER SUB
SUPER SUB
1
Assist
1
Assist
59
Minutes
6.9
Rating
Filippo Mané
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Yan Couto
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
0
Total Mins
Started
Entry
Julian Brandt
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
29
Total Mins
Started
Entry
Samuele Inacio
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
Mathis Albert
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Serhou Guirassy
CLUTCH HERO
CLUTCH HERO
87
Goal Time
87
Goal Time
Goal
Impact
7.6
Rating

Head to Head

Date Home Score Away Competition Venue
12/07/2025 Borussia Dortmund 2 - 0 1899 Hoffenheim Bundesliga Signal Iduna Park
04/26/2025 1899 Hoffenheim 2 - 3 Borussia Dortmund Bundesliga PreZero Arena
12/15/2024 Borussia Dortmund 1 - 1 1899 Hoffenheim Bundesliga SIGNAL IDUNA PARK
02/25/2024 Borussia Dortmund 2 - 3 1899 Hoffenheim Bundesliga BVB Stadion Dortmund
11/01/2023 Borussia Dortmund 1 - 0 1899 Hoffenheim DFB Pokal SIGNAL IDUNA PARK
09/29/2023 1899 Hoffenheim 1 - 3 Borussia Dortmund Bundesliga PreZero Arena
12/07/2025
Bundesliga Signal Iduna Park
04/26/2025
Bundesliga PreZero Arena
12/15/2024
Bundesliga SIGNAL IDUNA PARK
02/25/2024
Bundesliga BVB Stadion Dortmund
11/01/2023
DFB Pokal SIGNAL IDUNA PARK
09/29/2023
Bundesliga PreZero Arena
1899 Hoffenheim Win
Borussia Dortmund Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Bayern München 30 79 109 29 +80 WBayern München 4 - 2 VfB Stuttgart (19-04-2026)WFC St. Pauli 0 - 5 Bayern München (11-04-2026)WSC Freiburg 2 - 3 Bayern München (04-04-2026)WBayern München 4 - 0 Union Berlin (21-03-2026)DBayer Leverkusen 1 - 1 Bayern München (14-03-2026)
2 Borussia Dortmund 30 64 61 31 +30 L1899 Hoffenheim 2 - 1 Borussia Dortmund (18-04-2026)LBorussia Dortmund 0 - 1 Bayer Leverkusen (11-04-2026)WVfB Stuttgart 0 - 2 Borussia Dortmund (04-04-2026)WBorussia Dortmund 3 - 2 Hamburger SV (21-03-2026)WBorussia Dortmund 2 - 0 FC Augsburg (14-03-2026)
3 RB Leipzig 30 59 59 37 +22 WEintracht Frankfurt 1 - 3 RB Leipzig (18-04-2026)WRB Leipzig 1 - 0 Borussia Mönchengladbach (11-04-2026)WWerder Bremen 1 - 2 RB Leipzig (04-04-2026)WRB Leipzig 5 - 0 1899 Hoffenheim (20-03-2026)LVfB Stuttgart 1 - 0 RB Leipzig (15-03-2026)
4 VfB Stuttgart 30 56 62 42 +20 LBayern München 4 - 2 VfB Stuttgart (19-04-2026)WVfB Stuttgart 4 - 0 Hamburger SV (12-04-2026)LVfB Stuttgart 0 - 2 Borussia Dortmund (04-04-2026)WFC Augsburg 2 - 5 VfB Stuttgart (22-03-2026)WVfB Stuttgart 1 - 0 RB Leipzig (15-03-2026)
5 1899 Hoffenheim 30 54 59 44 +15 W1899 Hoffenheim 2 - 1 Borussia Dortmund (18-04-2026)DFC Augsburg 2 - 2 1899 Hoffenheim (10-04-2026)L1899 Hoffenheim 1 - 2 FSV Mainz 05 (04-04-2026)LRB Leipzig 5 - 0 1899 Hoffenheim (20-03-2026)D1899 Hoffenheim 1 - 1 VfL Wolfsburg (14-03-2026)
6 Bayer Leverkusen 30 52 60 41 +19 LBayer Leverkusen 1 - 2 FC Augsburg (18-04-2026)WBorussia Dortmund 0 - 1 Bayer Leverkusen (11-04-2026)WBayer Leverkusen 6 - 3 VfL Wolfsburg (04-04-2026)D1. FC Heidenheim 3 - 3 Bayer Leverkusen (21-03-2026)DBayer Leverkusen 1 - 1 Bayern München (14-03-2026)
7 SC Freiburg 30 43 44 48 -4 WSC Freiburg 2 - 1 1. FC Heidenheim (19-04-2026)WFSV Mainz 05 0 - 1 SC Freiburg (12-04-2026)LSC Freiburg 2 - 3 Bayern München (04-04-2026)WFC St. Pauli 1 - 2 SC Freiburg (22-03-2026)LSC Freiburg 0 - 1 Union Berlin (15-03-2026)
8 Eintracht Frankfurt 30 42 55 57 -2 LEintracht Frankfurt 1 - 3 RB Leipzig (18-04-2026)WVfL Wolfsburg 1 - 2 Eintracht Frankfurt (11-04-2026)DEintracht Frankfurt 2 - 2 1. FC Köln (05-04-2026)LFSV Mainz 05 2 - 1 Eintracht Frankfurt (22-03-2026)WEintracht Frankfurt 1 - 0 1. FC Heidenheim (14-03-2026)
9 FC Augsburg 30 36 38 54 -16 WBayer Leverkusen 1 - 2 FC Augsburg (18-04-2026)DFC Augsburg 2 - 2 1899 Hoffenheim (10-04-2026)DHamburger SV 1 - 1 FC Augsburg (04-04-2026)LFC Augsburg 2 - 5 VfB Stuttgart (22-03-2026)LBorussia Dortmund 2 - 0 FC Augsburg (14-03-2026)
10 FSV Mainz 05 30 34 36 45 -9 DBorussia Mönchengladbach 1 - 1 FSV Mainz 05 (19-04-2026)LFSV Mainz 05 0 - 1 SC Freiburg (12-04-2026)W1899 Hoffenheim 1 - 2 FSV Mainz 05 (04-04-2026)WFSV Mainz 05 2 - 1 Eintracht Frankfurt (22-03-2026)WWerder Bremen 0 - 2 FSV Mainz 05 (15-03-2026)
11 Union Berlin 30 32 34 52 -18 LUnion Berlin 1 - 2 VfL Wolfsburg (18-04-2026)L1. FC Heidenheim 3 - 1 Union Berlin (11-04-2026)DUnion Berlin 1 - 1 FC St. Pauli (05-04-2026)LBayern München 4 - 0 Union Berlin (21-03-2026)WSC Freiburg 0 - 1 Union Berlin (15-03-2026)
12 1. FC Köln 30 31 44 51 -7 DFC St. Pauli 1 - 1 1. FC Köln (17-04-2026)W1. FC Köln 3 - 1 Werder Bremen (12-04-2026)DEintracht Frankfurt 2 - 2 1. FC Köln (05-04-2026)D1. FC Köln 3 - 3 Borussia Mönchengladbach (21-03-2026)DHamburger SV 1 - 1 1. FC Köln (14-03-2026)
13 Borussia Mönchengladbach 30 31 36 50 -14 DBorussia Mönchengladbach 1 - 1 FSV Mainz 05 (19-04-2026)LRB Leipzig 1 - 0 Borussia Mönchengladbach (11-04-2026)DBorussia Mönchengladbach 2 - 2 1. FC Heidenheim (04-04-2026)D1. FC Köln 3 - 3 Borussia Mönchengladbach (21-03-2026)WBorussia Mönchengladbach 2 - 0 FC St. Pauli (13-03-2026)
14 Hamburger SV 30 31 33 48 -15 LWerder Bremen 3 - 1 Hamburger SV (18-04-2026)LVfB Stuttgart 4 - 0 Hamburger SV (12-04-2026)DHamburger SV 1 - 1 FC Augsburg (04-04-2026)LBorussia Dortmund 3 - 2 Hamburger SV (21-03-2026)DHamburger SV 1 - 1 1. FC Köln (14-03-2026)
15 Werder Bremen 30 31 35 53 -18 WWerder Bremen 3 - 1 Hamburger SV (18-04-2026)L1. FC Köln 3 - 1 Werder Bremen (12-04-2026)LWerder Bremen 1 - 2 RB Leipzig (04-04-2026)WVfL Wolfsburg 0 - 1 Werder Bremen (21-03-2026)LWerder Bremen 0 - 2 FSV Mainz 05 (15-03-2026)
16 FC St. Pauli 30 26 26 51 -25 DFC St. Pauli 1 - 1 1. FC Köln (17-04-2026)LFC St. Pauli 0 - 5 Bayern München (11-04-2026)DUnion Berlin 1 - 1 FC St. Pauli (05-04-2026)LFC St. Pauli 1 - 2 SC Freiburg (22-03-2026)LBorussia Mönchengladbach 2 - 0 FC St. Pauli (13-03-2026)
17 VfL Wolfsburg 30 24 41 66 -25 WUnion Berlin 1 - 2 VfL Wolfsburg (18-04-2026)LVfL Wolfsburg 1 - 2 Eintracht Frankfurt (11-04-2026)LBayer Leverkusen 6 - 3 VfL Wolfsburg (04-04-2026)LVfL Wolfsburg 0 - 1 Werder Bremen (21-03-2026)D1899 Hoffenheim 1 - 1 VfL Wolfsburg (14-03-2026)
18 1. FC Heidenheim 30 19 33 66 -33 LSC Freiburg 2 - 1 1. FC Heidenheim (19-04-2026)W1. FC Heidenheim 3 - 1 Union Berlin (11-04-2026)DBorussia Mönchengladbach 2 - 2 1. FC Heidenheim (04-04-2026)D1. FC Heidenheim 3 - 3 Bayer Leverkusen (21-03-2026)LEintracht Frankfurt 1 - 0 1. FC Heidenheim (14-03-2026)