OFI win 2-0 despite Hoffenheim’s 21 shots
How the match unfolded, with the data behind it
How this story was made
- Evidence
- fixture data, league standings, team statistics, events, lineups, match statistics, player performance, and injuries
- Generated
- 9/17/2026, 8:50:17 PM
- Model
- GPT56Luna
- Editorial checks
- passed · score 100/100 · 451 words

OFI

1899 Hoffenheim
OFI beat 1899 Hoffenheim 2-0 at Pankritio Stadium in Heraklion on Thursday, securing victory in the opening round of the UEFA Europa League league stage. OFI led 1-0 at half-time and held on despite Hoffenheim controlling much of the ball and registering more attempts.
Cantalapiedra gives OFI the lead
The first major breakthrough arrived in the 30th minute. Kenan Kodro supplied the assist for Aitor Cantalapiedra, who scored OFI’s opening goal. The hosts carried that advantage into the interval, with Hoffenheim unable to turn their greater share of possession into an equaliser.
Hoffenheim made an adjustment at the break, replacing Albian Hajdari with Koki Machida. Further changes followed in the second half as Andrej Kramarić replaced Nathan De Cat and Bambasé Conté came on for Patrick Wimmer in the 60th minute. Adam Daghim later replaced Mats Rots, while OFI introduced Thiago Nuss for Taxiarchis Fountas and Giannis Apostolakis for Cantalapiedra.
Hoffenheim have more of the ball, but OFI finish the job
The statistics show a clear contrast between control and outcome. Hoffenheim had 67% possession, completed 453 accurate passes from 529, and attempted 21 shots. OFI completed 166 accurate passes from 261 and had nine shots. Hoffenheim also led 13-5 in shots inside the box and 8-4 on corners.
Those figures did not produce a goal. OFI goalkeeper N. Christogeorgos made five saves, while Hoffenheim managed five shots on target to OFI’s three. The visitors also recorded 10 shots off target, compared with four for the hosts. OFI’s more limited attacking volume was nevertheless enough to protect the lead and create a second decisive moment.
Kanellopoulos seals the points
Georgios Kanellopoulos doubled OFI’s advantage in the 84th minute, with Borja González providing the assist. Kanellopoulos had come on for the final 20 minutes and finished the match with a shot on target and two tackles, adding a late impact to the result.
The match included five yellow cards and no dismissals. Vladimír Coufal was booked in the 23rd minute, followed by Nathan De Cat in the 53rd, Athanasios Androutsos in the 56th, Koki Machida in the 63rd and Cantalapiedra in the 64th. Hoffenheim committed 23 fouls to OFI’s eight.
OFI move fourth after opening win
The victory puts OFI fourth in the league-stage table with three points and a goal difference of plus two after one match. It also extends their listed recent sequence of two wins into a winning start of three matches. Hoffenheim sit 34th with no points and a minus-two goal difference after their opening defeat.
Christogeorgos was the standout performer, earning a 7.9 rating after playing all 90 minutes and making five saves. Cantalapiedra also made a decisive contribution, scoring once in 70 minutes before being replaced.
By the numbers
The data behind OFI vs 1899 Hoffenheim, in 3 charts.
The season so far
Wins, draws and losses side by side
Two different teams?
Home and away form for OFI
How they line up
Most-used formations this season
The table as it stands
| Logo | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Sparta Praha | W | 1 | 1 | 0 | 0 | 4 | 1 | 3 | |
| 2 | Benfica | WWWDW | 1 | 1 | 0 | 0 | 2 | 0 | 3 | |
| 3 | Bayer Leverkusen | W | 1 | 1 | 0 | 0 | 2 | 0 | 3 | |
| 4 | OFI | WWW | 1 | 1 | 0 | 0 | 2 | 0 | 3 | |
| 5 | Lyon | W | 1 | 1 | 0 | 0 | 2 | 1 | 3 | |
| 6 | Olympiakos Piraeus | W | 1 | 1 | 0 | 0 | 2 | 1 | 3 | |
| 7 | Red Bull Salzburg | WWWDW | 1 | 1 | 0 | 0 | 1 | 0 | 3 | |
| 8 | Omonia Nicosia | WWLWD | 1 | 1 | 0 | 0 | 1 | 0 | 3 | |
| 9 | Sunderland | W | 1 | 1 | 0 | 0 | 1 | 0 | 3 | |
| 10 | Dinamo Zagreb | D | 1 | 0 | 1 | 0 | 0 | 0 | 1 | |
| 11 | Hapoel Beer Sheva | D | 1 | 0 | 1 | 0 | 0 | 0 | 1 | |
| 12 | Rennes | D | 1 | 0 | 1 | 0 | 0 | 0 | 1 | |
| 13 | Sturm Graz | D | 1 | 0 | 1 | 0 | 0 | 0 | 1 | |
| 14 | Beşiktaş | LWWWW | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 15 | Bournemouth | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 16 | Celtic | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 17 | Crystal Palace | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 18 | Ferencvarosi TC | WWDWD | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 19 | Juventus | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 20 | Lech Poznan | DWWW | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 21 | Lillestrom | WD | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 22 | Marseille | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 23 | NEC Nijmegen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 24 | Real Sociedad | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 25 | Torreense | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 26 | Union St. Gilloise | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 27 | Plzen | WL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 28 | Jagiellonia | LWWDW | 1 | 0 | 0 | 1 | 1 | 2 | 0 | |
| 29 | Anderlecht | LWWWW | 1 | 0 | 0 | 1 | 1 | 2 | 0 | |
| 30 | AZ Alkmaar | L | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |
| 31 | Celta Vigo | L | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |
| 32 | Levski Sofia | L | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |
| 33 | Celje | L | 1 | 0 | 0 | 1 | 0 | 2 | 0 | |
| 34 | 1899 Hoffenheim | L | 1 | 0 | 0 | 1 | 0 | 2 | 0 | |
| 35 | AC Milan | L | 1 | 0 | 0 | 1 | 0 | 2 | 0 | |
| 36 | Ararat-Armenia | LWD | 1 | 0 | 0 | 1 | 1 | 4 | 0 |