TPS vs VPS

30 May 2026 · Veikkausliiga · 2026 · Referee Oliver Reitala

Full time 1 – 0

Half-time: 0–0

  • Miika Kauppila 83’

Match summary

TPS saw off VPS 1-0. It was goalless at half-time.

Miika Kauppila put TPS ahead with a header in the 83rd minute.

VPS can feel hard done by, creating 1.92 expected goals (xG) from 22 shots to TPS's 0.09 from 1.

Match stats

37% Possession 63%
1 Shots 22
1 Shots on target 9
2 Corners 9
234 Passes 462
72.6% Pass accuracy 82.3%
2 Tackles 5
15 Fouls 15
3 Yellow cards 1
0 Red cards 0
0 Offsides 2

Key events

TPS VPS
Kick-off
30’
Emmanuel OkerekeShot on target
32’
Luka SmythShot on target
44’
Half-time0-0
Second half underway
48’
Jonathan MuzingaShot on target
51’
Paulo LimaShot on target
54’
Jonathan MuzingaShot on target
65’
Luka SmythShot on target
Akim SairinenOscar Haggstrom
67’
70’
79’
Luka SmythShot on target
80’
Joonas VahteraShot on target
82’
Luka SmythShot on target
Miika KauppilaHeader1-0 (TPS)
83’
90+2’
90+3’
Olavi KeturiAntti-Ville Räisänen

How the chances added up

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.

0.0 0.5 1.0 1.5 2.0 2.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.09 1.92 83’ Miika Kauppila (TPS), 1-0 83’ 0.0 0.5 1.0 1.5 2.0 2.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.09 1.92 83’ Miika Kauppila (TPS), 1-0 Kauppila 83’
TPS 0.09 xGVPS 1.92 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 VPS attacking TPS attacking 
30’ Emmanuel Okereke (VPS), set piece, 0.31 xG, saved 48’ Jonathan Muzinga (VPS), open play, 0.25 xG, saved 72’ Joonas Vahtera (VPS), set piece, 0.20 xG, off target 80’ Joonas Vahtera (VPS), from a corner, 0.17 xG, saved 90+3’ Jayden Turfkruier (VPS), direct free kick, 0.13 xG, blocked 32’ Luka Smyth (VPS), open play, 0.10 xG, saved 51’ Paulo Lima (VPS), open play, 0.10 xG, saved 83’ Miika Kauppila (TPS), set piece, 0.09 xG, goal 59’ Jonathan Muzinga (VPS), set piece, 0.09 xG, blocked 52’ Yassin Daoussi (VPS), open play, 0.08 xG, off target 64’ Yassin Daoussi (VPS), open play, 0.08 xG, blocked 54’ Jonathan Muzinga (VPS), open play, 0.07 xG, saved 89’ Simon Lindholm (VPS), open play, 0.07 xG, blocked 39’ Luka Smyth (VPS), open play, 0.06 xG, blocked 54’ Yassin Daoussi (VPS), set piece, 0.06 xG, blocked 45’ Jonathan Muzinga (VPS), open play, 0.06 xG, blocked 82’ Luka Smyth (VPS), open play, 0.05 xG, saved 22’ Paulo Lima (VPS), from a corner, 0.02 xG, off target 71’ Simon Lindholm (VPS), open play, 0.01 xG, blocked 14’ Kevin Kouassivi-Benissan (VPS), set piece, 0.01 xG, off target 42’ Lassana Mané (VPS), set piece, 0.01 xG, off target 79’ Luka Smyth (VPS), open play, 0.01 xG, saved 65’ Luka Smyth (VPS), open play, 0.00 xG, saved 30’ Emmanuel Okereke (VPS), set piece, 0.31 xG, saved 48’ Jonathan Muzinga (VPS), open play, 0.25 xG, saved 72’ Joonas Vahtera (VPS), set piece, 0.20 xG, off target 80’ Joonas Vahtera (VPS), from a corner, 0.17 xG, saved 90+3’ Jayden Turfkruier (VPS), direct free kick, 0.13 xG, blocked 32’ Luka Smyth (VPS), open play, 0.10 xG, saved 51’ Paulo Lima (VPS), open play, 0.10 xG, saved 83’ Miika Kauppila (TPS), set piece, 0.09 xG, goal 59’ Jonathan Muzinga (VPS), set piece, 0.09 xG, blocked 52’ Yassin Daoussi (VPS), open play, 0.08 xG, off target 64’ Yassin Daoussi (VPS), open play, 0.08 xG, blocked 89’ Simon Lindholm (VPS), open play, 0.07 xG, blocked 54’ Jonathan Muzinga (VPS), open play, 0.07 xG, saved 54’ Yassin Daoussi (VPS), set piece, 0.06 xG, blocked 39’ Luka Smyth (VPS), open play, 0.06 xG, blocked 45’ Jonathan Muzinga (VPS), open play, 0.06 xG, blocked 82’ Luka Smyth (VPS), open play, 0.05 xG, saved 22’ Paulo Lima (VPS), from a corner, 0.02 xG, off target 71’ Simon Lindholm (VPS), open play, 0.01 xG, blocked 14’ Kevin Kouassivi-Benissan (VPS), set piece, 0.01 xG, off target 42’ Lassana Mané (VPS), set piece, 0.01 xG, off target 79’ Luka Smyth (VPS), open play, 0.01 xG, saved 65’ Luka Smyth (VPS), open play, 0.00 xG, saved
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

TPS 5-4-1 Starting XI
Henriksson
Turkki
Hradecky
Zaal
Karkulowski 55’
Haggstrom 67’
Vauhkonen 55’
Ikonen
Kauppila
Könkkölä 87’
Muzaci
VPS 3-4-1-2 Starting XI
Jalloh
Okereke
Niemi 87’
Daoussi 68’
Mané
Kouassivi-Benissan 78’
Räisänen 90’
Lima
Turfkruier
Smyth
Muzinga 68’

Player stats

Players15 players
90′ – – – – – – –
Tobias Karkulowski Taken off
55′ – – – – – –
Oscar Haggstrom Taken off
67′ – – – – – – –
90′ – – – – – –
90′ – – – – – –
90′ 1 – 1 0.09 – – –
Marius Könkkölä Taken off
87′ – – – – – – –
90′ – – – – – – –
90′ – – – – – – –
Elmer Vauhkonen Taken off
55′ – – – – – – –
90′ – – – – – – –
Nikolas Talo Came on as a substitute
35′ – – – – – – –
Luke Ivanovic Came on as a substitute
35′ – – – – – – –
Akim Sairinen Came on as a substitute
23′ – – – – – – –
Tomi Vakiparta Came on as a substitute
3′ – – – – – – –
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.

Form going into the game

Last five league games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results and odds from football-data.co.uk.