AC Oulu vs KuPS

4 July 2025 · Veikkausliiga · 2025 · Referee Dennis Antamo

Full time 2 – 2

Half-time: 1–0

  • Tuomas Kaukua 4’
  • Miika Koskela 78’
  • Mohamed Toure 52’
  • Otto Ruoppi 65’

Match summary

The points were shared as AC Oulu and KuPS drew 2-2. AC Oulu led 1-0 at half-time.

In the first half, Tuomas Kaukua put AC Oulu ahead in the 4th minute. In the second half, Mohamed Toure equalised in the 52nd minute, Otto Ruoppi put KuPS in front in the 65th minute, and Miika Koskela equalised with a header in the 78th minute.

KuPS had the better of the chances, with 0.93 expected goals (xG) from 12 shots to AC Oulu's 0.36 from 2.

Key events

AC Oulu KuPS
Kick-off
Tuomas KaukuaRight foot shot1-0 (AC Oulu)
4’
4’
Arttu HeinonenShot on target
16’
Roope SaloFoul
31’
Niko HämäläinenFoul
Otto SalmensuuTuomas Kaukua
32’
37’
Samuli MiettinenFoul
44’
Arttu HeinonenShot on target
Half-time1-0
Aleksi PaananenJulius Paananen
46’
46’
Otto RuoppiAgon Sadiku
46’
Mohamed ToureRoope Salo
Second half underway
52’
Mohamed ToureRight foot shot1-1 (KuPS)
Chianyindi Spencer SilasOtto Salmensuu
57’
61’
Jaakko OksanenDoni Arifi
65’
Otto RuoppiRight foot shot1-2 (KuPS)
Aleksi PaananenFoul
70’
Miika KoskelaHeader2-2 (AC Oulu)
78’
83’
Bob Nii ArmahShot on target
86’
Joel LehtonenArgument
90+4’
Full-time2-2

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 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.36 0.93 4’ Tuomas Kaukua (AC Oulu), 1-0 4’ 52’ Mohamed Toure (KuPS), 1-1 52’ 65’ Otto Ruoppi (KuPS), 1-2 65’ 78’ Miika Koskela (AC Oulu), 2-2 78’ 0.0 0.5 1.0 1.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.36 0.93 4’ Tuomas Kaukua (AC Oulu), 1-0 Kaukua 4’ 52’ Mohamed Toure (KuPS), 1-1 Toure 52’ 65’ Otto Ruoppi (KuPS), 1-2 Ruoppi 65’ 78’ Miika Koskela (AC Oulu), 2-2 Koskela 78’
AC Oulu 0.36 xGKuPS 0.93 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 KuPS attacking AC Oulu attacking 
78’ Miika Koskela (AC Oulu), from a corner, 0.30 xG, goal 90+2’ Petteri Pennanen (KuPS), open play, 0.28 xG, hit the woodwork 52’ Mohamed Toure (KuPS), open play, 0.25 xG, goal 65’ Otto Ruoppi (KuPS), open play, 0.20 xG, goal 22’ Bob Nii Armah (KuPS), open play, 0.07 xG, off target 4’ Tuomas Kaukua (AC Oulu), open play, 0.05 xG, goal 50’ Niko Hämäläinen (KuPS), open play, 0.04 xG, off target 4’ Arttu Heinonen (KuPS), open play, 0.03 xG, saved 83’ Bob Nii Armah (KuPS), open play, 0.03 xG, saved 44’ Arttu Heinonen (KuPS), open play, 0.02 xG, saved 54’ Bob Nii Armah (KuPS), open play, 0.00 xG, blocked 67’ Arttu Lötjönen (KuPS), open play, 0.00 xG, off target 51’ Jerry Voutilainen (KuPS), open play, 0.00 xG, blocked 26’ Agon Sadiku (KuPS), open play, 0.00 xG, off target 78’ Miika Koskela (AC Oulu), from a corner, 0.30 xG, goal 90+2’ Petteri Pennanen (KuPS), open play, 0.28 xG, hit the woodwork 52’ Mohamed Toure (KuPS), open play, 0.25 xG, goal 65’ Otto Ruoppi (KuPS), open play, 0.20 xG, goal 22’ Bob Nii Armah (KuPS), open play, 0.07 xG, off target 4’ Tuomas Kaukua (AC Oulu), open play, 0.05 xG, goal 50’ Niko Hämäläinen (KuPS), open play, 0.04 xG, off target 83’ Bob Nii Armah (KuPS), open play, 0.03 xG, saved 4’ Arttu Heinonen (KuPS), open play, 0.03 xG, saved 44’ Arttu Heinonen (KuPS), open play, 0.02 xG, saved 54’ Bob Nii Armah (KuPS), open play, 0.00 xG, blocked 67’ Arttu Lötjönen (KuPS), open play, 0.00 xG, off target 51’ Jerry Voutilainen (KuPS), open play, 0.00 xG, blocked 26’ Agon Sadiku (KuPS), open play, 0.00 xG, off target
Size shows xG Goal On target Off target or blocked

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

Lineups

AC Oulu 3-5-1-1 Starting XI
Eskelinen
Pitkänen
Koskela
Bergsma
Kaukua 32’
Cassama
Tiihonen
Paananen 46’
Silander 89’
Ojala 57’
Rennicks
KuPS 4-4-2 Starting XI
Hakala
Hämäläinen
Armah
Lötjönen
Miettinen
Salo 46’
Voutilainen
Arifi 61’
Heinonen 75’
Sadiku 46’
Luyeye-Lutumba 61’

Player stats

Goalkeeper1 player
William Eskelinen
90′ 3 2 35 2 – – – –
Defenders8 players
90′ – 1 – 4 2 23 – – – –
Miika Koskela
90′ – 7 1 4 3 38 – 1 – –
Leon Bergsma
90′ – 1 – 4 1 39 – – – –
Santeri Silander Taken off
90′ – 1 – 6 2 30 1 – – –
Tuomas Kaukua Taken off
31′ – 2 – 2 – 8 – 1 – –
90′ – 3 – 11 2 37 – – – –
Otto Salmensuu Came on as a substituteTaken off
58′ – – – – – 2 1 – – –
Joel Lehtonen Came on as a substitute
6′ – – – – – – 1 – –
Midfielders5 players
90′ – – 31 – – 2 3 4 1 2 –
Julius Paananen Taken off
47′ – – 11 – – – – 1 – – –
Matias Ojala Taken off
58′ – – 15 – – – – 2 1 2 –
Aleksi Paananen Came on as a substitute
49′ – – 15 – – – 1 1 3 1
Chianyindi Spencer Silas Came on as a substitute
38′ – – 2 – – – – – – – –
Forwards2 players
Justin Rennicks
90′ – – – – – – – 8 1 19 –
Julius Körkkö Came on as a substitute
38′ – 1 – – – 0.30 1 4 1 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. Referee data before 2025/26 from the Transfermarkt datasets project.