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

Futmetrix Verdict
80
FT
Thu, Oct 15
1899 Hoffenheim
2-3
Beşiktaş
⚡ Intensity 83
⚖️ Balance 69
🏆 Stakes 0
🎲 Upset 60
Oh turns late chaos into victory

Win Probability

  • 1899 Hoffenheim 48%
  • Draw 24%
  • Beşiktaş 28%

Futmetrix AI estimate

Oh Hyeon-Gyu settles five-goal storm for Beşiktaş

Highly Entertaining Futmetrix Score: 80/100. This mattered because Beşiktaş turned a finely balanced European contest into a statement away victory when the pressure peaked.

A slow burn catches fire

The tension simmered before the scoreline erupted. 1899 Hoffenheim edged possession with 54% at Prezero Arena, yet Beşiktaş carried the sharper threat. Their 19 attempts, 16 from inside the penalty area, exposed where the real danger lived. Hoffenheim moved the ball patiently but produced only three efforts on target from 13 shots. That contrast gave the contest a high Intensity without an early breakthrough. Thirty-two combined attempts and 12 corners kept both defences occupied, while Beşiktaş repeatedly found routes into the final third. The visitors’ 3.43 expected goals told the right story: this was not hopeful shooting from distance. It was sustained pressure in dangerous areas, waiting for one clean opening. For an hour, the hosts survived it. Then the match tore itself open.

Oh takes command

The decisive swing arrived in the 60th minute. Amir Murillo finished a move created by Oh Hyeon-Gyu, rewarding Beşiktaş for their greater penalty-box presence. Hoffenheim responded quickly. Substitute Tim Lemperle supplied Fisnik Asllani for the 68th-minute equaliser, briefly restoring control to the hosts. That resistance lasted four minutes. Junior Olaitan released Oh for his first goal, and the striker struck again in the 79th minute from Ilhan Fakili’s delivery. Two goals and an assist made him the clear difference. The strong Balance made every surge feel dangerous, but Oh supplied the ruthless edge Hoffenheim lacked. Three goals between the 60th and 72nd minutes transformed a restrained contest into a frantic chase, and his second finish created the separation Beşiktaş needed.

Late pressure, lasting reward

Hoffenheim refused to fold. Koki Machida converted Vladimír Coufal’s service in the 87th minute, cutting the deficit and setting up a nervous finish. Beşiktaş held firm and won 3-2 away, a result built on superior chance quality rather than possession. Five big chances and 16 key passes showed how consistently the visitors threatened, while Hoffenheim’s seven corners and late goal ensured there was no comfortable closing spell. The Upset Factor was substantial: the less-fancied side handled the decisive moments with greater authority. The Stakes remain measured this early in the league stage, but the reward is real. Beşiktaş sit ninth and three points off the lead, firmly inside the play-off places. Hoffenheim, still without a point after two matches, leave with spirit intact but defensive questions growing louder.

Key Questions

What made Oh Hyeon-Gyu the Man of the Match?

He scored twice, assisted Murillo’s opener and delivered the clinical edge that separated the teams.

What caused the five-goal thriller?

Relentless penalty-box pressure, 32 combined shots and three goals in 12 minutes shattered the earlier stalemate.

How did substitute Oh Hyeon-Gyu change the match?

Oh was not a substitute; he started and directly contributed to all three Beşiktaş goals.

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
54%
46%
1899 Hoffenheim 54%
Beşiktaş 46%
Shots
13
19
1899 Hoffenheim 13
Beşiktaş 19
Shots on Target
3
5
1899 Hoffenheim 3
Beşiktaş 5
Expected Goals (xG)
1.11
3.43
1899 Hoffenheim 1.11
Beşiktaş 3.43
Passes
484
423
1899 Hoffenheim 484
Beşiktaş 423
Corners
7
5
1899 Hoffenheim 7
Beşiktaş 5
Fouls
18
8
1899 Hoffenheim 18
Beşiktaş 8
Yellow Cards
4
1
1899 Hoffenheim 4
Beşiktaş 1
Red Cards
0
0
1899 Hoffenheim 0
Beşiktaş 0

Match Events

23' 🟨 Fisnik Asllani
↓ Orkun Kökçü ↑Fabio Miretti 🔄 45'
HT
59' 🔄 ↓ Adam Daghim ↑Alexander Prass
59' 🔄 ↓ Adam Hložek ↑Tim Lemperle
Amir Murillo (Oh Hyeon-gyu) ⚽ 60'
67' 🟨 Ozan Kabak
68' ⚽ Fisnik Asllani (Tim Lemperle)
Oh Hyeon-gyu (Junior Olaitan) ⚽ 72'
72' 🔄 ↓ Andrej Kramarić ↑Bambasé Conté
72' 🔄 ↓ Wouter Burger ↑Nathan De Cat
↓ Junior Olaitan ↑Salih Özcan 🔄 78'
Oh Hyeon-gyu (Ilhan Fakili) ⚽ 79'
Oh Hyeon-gyu 🟨 80'
85' 🔄 ↓ Ozan Kabak ↑Robin Hranáč
↓ Oh Hyeon-gyu ↑Semih Kılıçsoy 🔄 85'
87' ⚽ Koki Machida (Vladimír Coufal)
90' 🟨 Tim Lemperle
↓ Kassoum Ouattara ↑Ridvan Yilmaz 🔄 90'
↓ Wilfred Ndidi ↑Umit Akdag 🔄 90'+1
90'+2 🟨 Koki Machida
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
90
Total Mins
Started
Entry
Defenders
Vladimír Coufal
ARCHITECT
ARCHITECT
4
Key Passes
4
Key Passes
1
Assists
30%
Pass Acc
Ozan Kabak
SWEEPER
SWEEPER
3
Cleanups
3
Cleanups
3
Interceptions
0
Blocks
Koki Machida
CLUTCH HERO
CLUTCH HERO
87
Goal Time
87
Goal Time
Goal
Impact
7.1
Rating
Bernardo
STORMTROOPER
STORMTROOPER
1
Shots
1
Shots
0
Goals
0
On Target
Midfielders
Wouter Burger
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
72
Total Mins
72
Entry
Leon Avdullahu
MAGNET
MAGNET
76
Activity
76
Activity
64
Passes
12
Duels
Andrej Kramarić
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
72
Total Mins
72
Entry
Fisnik Asllani
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
Adam Daghim
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
7
Duels Won
0
Pens Won
Forwards
Adam Hložek
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
59
Total Mins
59
Entry
BENCH
Lukas Petersson
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Luca Philipp
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Natnael Abraha
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
Robin Hranáč
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
5
Total Mins
Started
Entry
Alexander Prass
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
31
Total Mins
Started
Entry
Mats Rots
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Bambasé Conté
SWEEPER
SWEEPER
3
Cleanups
3
Cleanups
1
Interceptions
2
Blocks
Nathan De Cat
STORMTROOPER
STORMTROOPER
2
Shots
2
Shots
0
Goals
0
On Target
Cajetan Benjamin Lenz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Tim Lemperle
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.2
Rating
Max Moerstedt
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Beşiktaş

Goalkeepers
Alexander Nübel
ARCHITECT
ARCHITECT
1
Key Passes
1
Key Passes
0
Assists
22%
Pass Acc
Defenders
Michael Murillo
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
Emmanuel Agbadou
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Emirhan Topçu
WALL
WALL
0
Dribbled Past
0
Dribbled Past
3
Tackles
73%
Duel Win %
Kassoum Ouattara
ARCHITECT
ARCHITECT
2
Key Passes
2
Key Passes
0
Assists
32%
Pass Acc
Midfielders
Junior Olaitan
PROVIDER
PROVIDER
1
Assists
1
Assists
2
Key Passes
6.6
Rating
Wilfred Ndidi
NPC
NPC
91
Minutes
91
Minutes
31%
Pass Acc
6
Rating
Ilhan Fakili
PROVIDER
PROVIDER
1
Assists
1
Assists
2
Key Passes
6.9
Rating
Orkun Kökçü
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
46
Total Mins
45
Entry
Leandro Trossard
ARCHITECT
ARCHITECT
5
Key Passes
5
Key Passes
0
Assists
29%
Pass Acc
Forwards
Hyeon-Gyu Oh
CLOSER
CLOSER
1
Late Goals
1
Late Goals
0
Late Assists
75
Minute
BENCH
Doğan Alemdar
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Rıdvan Yılmaz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Yasin Özcan
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Tiago Djaló
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Taylan Bulut
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ümit Akdağ
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
12
Total Mins
Started
Entry
Fabio Miretti
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
44
Total Mins
Started
Entry
Kartal Kayra Yılmaz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ernest Poku
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Semih Kılıçsoy
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
5
Total Mins
Started
Entry
Sami Bircan Ahmet
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

League Standings

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