OFI 2 - 0 FT 1899 Hoffenheim

Pankritio Stadium

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

Futmetrix Verdict
41
FT
Thu, Sep 17
OFI
2-0
1899 Hoffenheim
⚡ Intensity 41
⚖️ Balance 27
🏆 Stakes 0
🎲 Upset 100
OFI stun Hoffenheim in Crete.

Win Probability

  • OFI 13%
  • Draw 20%
  • 1899 Hoffenheim 67%

Futmetrix AI estimate

OFI Execute the Ultimate European Ambush

Average Entertainment Futmetrix Score: 41/100. Our verdict: A masterclass in soaking up pressure and striking with surgical precision defined this historic upset.

The Initial Siege

Hoffenheim commanded the ball, dominating possession with a staggering 67 percent at Pankritio Stadium. The Intensity was evident from the opening whistle as the visitors unleashed an absolute barrage of shots, turning the Greek penalty area into a shooting gallery and ending the night with 21 total attempts. However, they found an impenetrable wall in N. Christogeorgos. The OFI goalkeeper set a defiant tone early on, tracking every incoming threat to keep the frustrated visitors entirely at bay. Despite their overwhelming territorial control and a relentless wave of eight corners applying constant set-piece pressure, 1899 Hoffenheim completely lacked the clinical edge required to make their statistical superiority count. It became a classic, compelling tale of sterile possession versus gritty, unyielding pragmatism.

The Tactical Pivot

While the visitors continuously probed for openings, OFI struck back with pure venom. Just as the pressure seemed insurmountable in the 30th minute, Kenan Kodro orchestrated a brilliant transition and found Aitor Cantalapiedra, who finished the sequence with ruthless efficiency to alter the entire complexion of the tie. This singular, breathtaking moment shifted the Balance completely in favor of the hosts. Hoffenheim were forced to push even higher up the pitch, leaving gaping spaces in their fragile transition defense. The Greek side was more than happy to sit deep, absorb the punishment, and turn the match into a high-stakes defensive drill. The visitors' failure to convert any of their 13 shots from inside the box highlighted a staggering lack of ruthlessness, a fatal flaw the hosts systematically exploited.

The Substitutes' Masterstroke

The Stakes rose dramatically as the clock ticked down and desperation set in for the away side, prompting a masterclass in managerial intervention. The fresh legs of substitutes Borja González and Georgios Kanellopoulos provided the ultimate sucker punch in the 84th minute to kill off the tie. González intelligently carved open the exhausted German defense on the counter, allowing Kanellopoulos to confidently seal a spectacular 2-0 victory. This generated a massive Upset rating, registering a colossal probability gap that was defied by pure tactical grit. It was a historic, unforgettable night in Crete, emphatically proving that heart and flawless defensive organisation can completely dismantle possession-heavy tactical systems on the grand European stage.

Key Questions

How did 1899 Hoffenheim pull off this shock result?

They didn't. OFI actually pulled off the massive 2-0 upset by defending ruthlessly against Hoffenheim's 67 percent possession and 21 shots, striking twice on the counter.

How did substitute N. Christogeorgos change the game?

Christogeorgos started as the primary goalkeeper rather than a substitute. He anchored the defense beautifully, making five crucial saves to secure an improbable clean sheet.

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
33%
67%
OFI 33%
1899 Hoffenheim 67%
Shots
9
21
OFI 9
1899 Hoffenheim 21
Shots on Target
3
5
OFI 3
1899 Hoffenheim 5
Passes
260
526
OFI 260
1899 Hoffenheim 526
Corners
4
8
OFI 4
1899 Hoffenheim 8
Fouls
8
23
OFI 8
1899 Hoffenheim 23
Yellow Cards
2
3
OFI 2
1899 Hoffenheim 3
Red Cards
0
0
OFI 0
1899 Hoffenheim 0

Match Events

Vladimír Coufal 🟨 23'
30' ⚽ Aitor Cantalapiedra (Kenan Kodro)
↓ Albian Hajdari ↑Koki Machida 🔄 45'
HT
Nathan De Cat 🟨 53'
↓ Nathan De Cat ↑Andrej Kramarić 🔄 60'
60' 🔄 ↓ Taxiarchis Fountas ↑Thiago Nuss
↓ Patrick Wimmer ↑Bambasé Conté 🔄 60'
Koki Machida 🟨 63'
↓ Mats Rots ↑Adam Daghim 🔄 67'
70' 🔄 ↓ Andreas Bouchalakis ↑Georgios Kanellopoulos
70' 🔄 ↓ Aitor Cantalapiedra ↑Giannis Apostolakis
↓ Adam Hložek ↑Fisnik Asllani 🔄 75'
80' 🔄 ↓ Kenan Kodro ↑Aaron Leya Iseka
80' 🔄 ↓ Lorenzo Dickmann ↑Borja González
84' ⚽ Georgios Kanellopoulos (Borja González)
FT

Player Cards

Our take on every player in this match

OFI

Goalkeepers
Nikos Christogeorgos
OCTOPUS
OCTOPUS
5
Saves
5
Saves
0
Conceded
100%
Save %
Defenders
Konstantinos Kostoulas
STORMTROOPER
STORMTROOPER
1
Shots
1
Shots
0
Goals
0
On Target
Achilleas Poungouras
WALL
WALL
0
Dribbled Past
0
Dribbled Past
2
Tackles
60%
Duel Win %
Krešimir Krizmanić
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Midfielders
Lorenzo Dickmann
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
4
Duels Won
0
Pens Won
Thanasis Androutsos
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Andreas Bouchalakis
STORMTROOPER
STORMTROOPER
2
Shots
2
Shots
0
Goals
1
On Target
Nikolaos Athanasiou
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
9
Duels Won
0
Pens Won
Forwards
Taxiarchis Fountas
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
Kenan Kodro
PROVOCATEUR
PROVOCATEUR
4
Fouls Won
4
Fouls Won
6
Duels Won
0
Pens Won
Aitor Cantalapiedra
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
BENCH
Panagiotis Katsikas
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Klidman Lilo
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Borja González
ARCHITECT
ARCHITECT
2
Key Passes
2
Key Passes
1
Assists
1%
Pass Acc
Pavlos Kenourgiakis
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Christos Sielis
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ioannis Apostolakis
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
20
Total Mins
Started
Entry
Georgios Kanellopoulos
CLOSER
CLOSER
1
Late Goals
1
Late Goals
0
Late Assists
75
Minute
Zisis Karachalios
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Aaron Leya Iseka
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
10
Total Mins
Started
Entry
Thiago Nuss
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
T. Romano
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Giannis Theodosoulakis
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

1899 Hoffenheim

Goalkeepers
Oliver Baumann
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Defenders
Vladimír Coufal
ARCHITECT
ARCHITECT
4
Key Passes
4
Key Passes
0
Assists
39%
Pass Acc
Ozan Kabak
MAGNET
MAGNET
88
Activity
88
Activity
69
Passes
19
Duels
Albian Hajdari
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
46
Total Mins
45
Entry
Mats Rots
DRIBBLER
DRIBBLER
3
Dribbles
3
Dribbles
3
Attempts
100%
Success %
Midfielders
Leon Avdullahu
MAGNET
MAGNET
64
Activity
64
Activity
54
Passes
10
Duels
Wouter Burger
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
0
Assists
46%
Pass Acc
Patrick Wimmer
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
Nathan De Cat
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
Adam Hložek
STORMTROOPER
STORMTROOPER
7
Shots
7
Shots
0
Goals
1
On Target
Forwards
Tim Lemperle
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
0
Assists
26%
Pass Acc
BENCH
Luca Philipp
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Lukas Petersson
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Koki Machida
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
44
Total Mins
Started
Entry
Robin Hranáč
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Valentin Gendrey
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
0
Total Mins
Started
Entry
Cajetan Benjamin Lenz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Bambasé Conté
STORMTROOPER
STORMTROOPER
2
Shots
2
Shots
0
Goals
1
On Target
Max Moerstedt
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Andrej Kramarić
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
Adam Daghim
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
23
Total Mins
Started
Entry
Fisnik Asllani
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry

League Standings

Pos Team P Pts GF GA GD Form
1 Juventus 1 3 5 0 +5 WJuventus 5 - 0 NEC Nijmegen (17-09-2026)
2 Crystal Palace 1 3 4 0 +4 WCrystal Palace 4 - 0 Lech Poznan (17-09-2026)
3 Beşiktaş 1 3 4 1 +3 WBeşiktaş 4 - 1 Marseille (17-09-2026)
4 Sparta Praha 1 3 4 1 +3 WArarat-Armenia 1 - 4 Sparta Praha (16-09-2026)
5 Union St. Gilloise 1 3 3 0 +3 WPlzen 0 - 3 Union St. Gilloise (17-09-2026)
6 Ferencvarosi TC 1 3 3 1 +2 WCeltic 1 - 3 Ferencvarosi TC (17-09-2026)
7 Bayer Leverkusen 1 3 2 0 +2 WBayer Leverkusen 2 - 0 Celje (16-09-2026)
8 Benfica 1 3 2 0 +2 WAC Milan 0 - 2 Benfica (16-09-2026)
9 OFI 1 3 2 0 +2 WOFI 2 - 0 1899 Hoffenheim (17-09-2026)
10 Bournemouth 1 3 2 1 +1 WReal Sociedad 1 - 2 Bournemouth (17-09-2026)
11 Lyon 1 3 2 1 +1 WAnderlecht 1 - 2 Lyon (16-09-2026)
12 Olympiakos Piraeus 1 3 2 1 +1 WOlympiakos Piraeus 2 - 1 Jagiellonia (16-09-2026)
13 Torreense 1 3 2 1 +1 WLillestrom 1 - 2 Torreense (17-09-2026)
14 Red Bull Salzburg 1 3 1 0 +1 WLevski Sofia 0 - 1 Red Bull Salzburg (17-09-2026)
15 Sunderland 1 3 1 0 +1 WSunderland 1 - 0 AZ Alkmaar (16-09-2026)
16 Omonia Nicosia 1 3 1 0 +1 WOmonia Nicosia 1 - 0 Celta Vigo (16-09-2026)
17 Rennes 1 1 0 0 0 DSturm Graz 0 - 0 Rennes (16-09-2026)
18 Hapoel Beer Sheva 1 1 0 0 0 DHapoel Beer Sheva 0 - 0 Dinamo Zagreb (16-09-2026)
19 Dinamo Zagreb 1 1 0 0 0 DHapoel Beer Sheva 0 - 0 Dinamo Zagreb (16-09-2026)
20 Sturm Graz 1 1 0 0 0 DSturm Graz 0 - 0 Rennes (16-09-2026)
21 Lillestrom 1 0 1 2 -1 LLillestrom 1 - 2 Torreense (17-09-2026)
22 Jagiellonia 1 0 1 2 -1 LOlympiakos Piraeus 2 - 1 Jagiellonia (16-09-2026)
23 Real Sociedad 1 0 1 2 -1 LReal Sociedad 1 - 2 Bournemouth (17-09-2026)
24 Anderlecht 1 0 1 2 -1 LAnderlecht 1 - 2 Lyon (16-09-2026)
25 AZ Alkmaar 1 0 0 1 -1 LSunderland 1 - 0 AZ Alkmaar (16-09-2026)
26 Celta Vigo 1 0 0 1 -1 LOmonia Nicosia 1 - 0 Celta Vigo (16-09-2026)
27 Levski Sofia 1 0 0 1 -1 LLevski Sofia 0 - 1 Red Bull Salzburg (17-09-2026)
28 Celtic 1 0 1 3 -2 LCeltic 1 - 3 Ferencvarosi TC (17-09-2026)
29 1899 Hoffenheim 1 0 0 2 -2 LOFI 2 - 0 1899 Hoffenheim (17-09-2026)
30 AC Milan 1 0 0 2 -2 LAC Milan 0 - 2 Benfica (16-09-2026)
31 Celje 1 0 0 2 -2 LBayer Leverkusen 2 - 0 Celje (16-09-2026)
32 Marseille 1 0 1 4 -3 LBeşiktaş 4 - 1 Marseille (17-09-2026)
33 Ararat-Armenia 1 0 1 4 -3 LArarat-Armenia 1 - 4 Sparta Praha (16-09-2026)
34 Plzen 1 0 0 3 -3 LPlzen 0 - 3 Union St. Gilloise (17-09-2026)
35 Lech Poznan 1 0 0 4 -4 LCrystal Palace 4 - 0 Lech Poznan (17-09-2026)
36 NEC Nijmegen 1 0 0 5 -5 LJuventus 5 - 0 NEC Nijmegen (17-09-2026)

Find your next match faster.

Honest match ratings. Find what is worth watching—without the clutter.

Bookmark this page

This page updates as new matches arrive.

Keep these picks handy.

Press Ctrl+D, then confirm in your browser.

Viewed labels stay on this device. We don't receive your reading history.

Keep Futmetrix handy

Honest match ratings. Find what is worth watching—without the clutter.