Match summary
VPS saw off Haka 1-0. VPS led 1-0 at half-time.
Maissa Fall put VPS ahead with a header in the 10th minute.
Haka can feel hard done by, creating 1.54 expected goals (xG) from 14 shots to VPS's 0.85 from 7.
26 September 2025 · Veikkausliiga · 2025 · Referee Mohammad Al-Emara
Half-time: 1–0
VPS saw off Haka 1-0. VPS led 1-0 at half-time.
Maissa Fall put VPS ahead with a header in the 10th minute.
Haka can feel hard done by, creating 1.54 expected goals (xG) from 14 shots to VPS's 0.85 from 7.
Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.
Tap a goal for the scorer and score.
Every shot and where it was taken from.
Hover or tap a shot for the player, minute and xG.
| 90′ | 3 | 0 | 32 | – | – | – | – | – |
Tyler Reid
|
90′ | – | 5 | 1 | 8 | 3 | 58 | 5 | – | – | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Pedro Justiniano
|
90′ | – | 6 | 1 | 20 | 10 | 55 | – | – | – | – | |
| 90′ | – | – | – | 4 | 1 | 55 | – | – | – | – | ||
Tristan Dekker
Taken off
|
84′ | – | 2 | – | 7 | 3 | 29 | 3 | – | – | – | |
| 90′ | – | 1 | – | 6 | 2 | 34 | 2 | – | – | – | ||
Jesper Engström
Came on as a substitute
|
12′ | – | – | – | – | – | – | – | – | – | – |
William Wilson
Taken off
|
84′ | – | – | 34 | – | – | – | 2 | 9 | 1 | 2 | – | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 90′ | – | – | 36 | – | – | – | – | 5 | 3 | – | |||
Antti-Ville Räisänen
Taken off
|
74′ | – | – | 26 | – | – | – | – | 3 | – | – | – | |
Alfie Cicale
Taken off
|
74′ | – | 1 | 37 | 2 | 0.34 | – | – | 7 | – | 1 | – | |
Yassine El Ouatki
Came on as a substitute
|
21′ | – | – | 15 | 1 | 0.16 | – | 1 | – | – | – | – | |
Olli Jakonen
Came on as a substitute
|
21′ | – | – | 4 | – | – | – | 1 | 1 | – | – | – | |
Olavi Keturi
Came on as a substitute
|
12′ | – | – | 7 | – | – | – | – | 3 | – | – | – |
Maissa Fall
|
90′ | 1 | – | 4 | 2 | 0.53 | – | 1 | 11 | 2 | 22 | – |
|---|
Liam Hughes
|
90′ | 1 | 1 | 31 | – | – | – | – | – |
|---|
Niklas Friberg
Taken off
|
21′ | – | – | – | – | – | 7 | – | – | – | – | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nicolas Gianini Dantas
Taken off
|
77′ | – | 2 | – | 3 | 3 | 28 | 1 | – | – | – | |
Mikael Almén
|
90′ | – | 2 | – | 6 | 1 | 35 | 2 | – | – | – | |
| 90′ | 1 | 4 | – | 6 | 1 | 39 | 1 | – | – | – | ||
Jordan Houston
Came on as a substitute
|
74′ | – | – | – | 3 | – | 31 | 1 | – | – | – | |
Michael Boamah
Came on as a substitute
|
18′ | – | – | – | 3 | 1 | 2 | – | – | – | – |
Oskari Sallinen
|
90′ | – | – | 24 | – | – | – | 4 | 2 | 1 | – | – | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Simon Lindholm
Taken off
|
77′ | – | – | 8 | – | – | 1 | – | 2 | 3 | 1 | ||
Abraham Okyere
|
90′ | – | – | 38 | 2 | 0.16 | 1 | 2 | 16 | 1 | 2 | – | |
Jean-Pierre Da Sylva
|
90′ | – | – | 25 | 1 | 0.03 | – | 1 | 16 | 1 | 6 | – | |
James Akintunde
Came on as a substitute
|
18′ | – | – | 5 | – | – | – | 1 | 1 | 1 | 1 | – |
Roni Hudd
Taken off
|
68′ | – | – | 1 | 1 | 0.06 | – | – | 8 | 2 | 11 | – | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Juan Lescano
Taken off
|
68′ | – | – | 2 | – | 0.23 | – | – | 6 | 1 | 10 | – | |
Arlind Sejdiu
Came on as a substitute
|
27′ | – | – | 1 | – | 0.13 | – | – | 2 | – | 9 | – | |
Kalle Multanen
Came on as a substitute
|
27′ | – | – | 1 | – | 0.16 | – | – | 1 | – | 1 | – |
Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.
Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results and odds from football-data.co.uk. Referee data before 2025/26 from the Transfermarkt datasets project.