KuPS vs AC Oulu

22 April 2026 · Veikkausliiga · 2026 · Referee Mohammad Al-Emara

Full time 3 – 2

Half-time: 1–1

  • Bob Nii Armah 5’
  • Jaime Moreno 47’
  • Otto Ruoppi 77’
  • Rasmus Karjalainen 44’ (pen), 64’

Match summary

KuPS saw off AC Oulu 3-2. It was 1-1 at half-time.

In the first half, Bob Nii Armah put KuPS ahead in the 5th minute and Rasmus Karjalainen equalised from the penalty spot in the 44th minute. In the second half, Jaime Moreno put KuPS back in front in the 47th minute, Karjalainen equalised in the 64th minute, and Otto Ruoppi won it in the 77th minute.

There was little between the sides on chances: KuPS created 1.59 expected goals (xG) from 12 shots, AC Oulu 1.87 from 12.

Match stats

57% Possession 43%
12 Shots 12
6 Shots on target 4
4 Corners 3
599 Passes 411
86.1% Pass accuracy 80.8%
3 Tackles 1
13 Fouls 7
0 Yellow cards 0
0 Red cards 0
4 Offsides 4

Key events

KuPS AC Oulu
Kick-off
Jaime MorenoShot on target
3’
Bob Nii ArmahRight foot shot1-0 (KuPS)
5’
Bob Nii ArmahShot on target
36’
38’
Julius PaananenShot on target
44’
Rasmus KarjalainenPenalty1-1 (AC Oulu)
Second half underway
Half-time1-1
Jaime MorenoRight foot shot2-1 (KuPS)
47’
64’
Rasmus KarjalainenRight foot shot2-2 (AC Oulu)
Bob Nii ArmahShot on target
69’
Otto RuoppiLeft foot shot3-2 (KuPS)
77’
89’
Julius KörkköShot on target
Full-time3-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 2.0 2.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.59 1.87 5’ Bob Nii Armah (KuPS), 1-0 5’ 44’ Rasmus Karjalainen (AC Oulu), 1-1 44’ 47’ Jaime Moreno (KuPS), 2-1 47’ 64’ Rasmus Karjalainen (AC Oulu), 2-2 64’ 77’ Otto Ruoppi (KuPS), 3-2 77’ 0.0 0.5 1.0 1.5 2.0 2.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.59 1.87 5’ Bob Nii Armah (KuPS), 1-0 Armah 5’ 44’ Rasmus Karjalainen (AC Oulu), 1-1 Karjalainen 44’ 47’ Jaime Moreno (KuPS), 2-1 Moreno 47’ 64’ Rasmus Karjalainen (AC Oulu), 2-2 Karjalainen 64’ 77’ Otto Ruoppi (KuPS), 3-2 Ruoppi 77’
KuPS 1.59 xGAC Oulu 1.87 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 AC Oulu attacking KuPS attacking 
64’ Rasmus Karjalainen (AC Oulu), open play, 0.80 xG, goal 44’ Rasmus Karjalainen (AC Oulu), penalty, 0.76 xG, goal 5’ Bob Nii Armah (KuPS), open play, 0.46 xG, goal 72’ Jaime Moreno (KuPS), from a corner, 0.19 xG, off target 3’ Saku Heiskanen (KuPS), open play, 0.16 xG, blocked 3’ Jaime Moreno (KuPS), open play, 0.14 xG, saved 8’ Saku Savolainen (KuPS), from a corner, 0.12 xG, off target 69’ Bob Nii Armah (KuPS), open play, 0.11 xG, saved 22’ Jaime Moreno (KuPS), open play, 0.09 xG, hit the woodwork 77’ Otto Ruoppi (KuPS), open play, 0.10 xG, goal 63’ Rasmus Karjalainen (AC Oulu), from a corner, 0.08 xG, off target 47’ Jaime Moreno (KuPS), open play, 0.08 xG, goal 1’ Jaime Moreno (KuPS), open play, 0.07 xG, blocked 32’ Julius Körkkö (AC Oulu), open play, 0.05 xG, hit the woodwork 36’ Bob Nii Armah (KuPS), open play, 0.05 xG, saved 73’ Rasmus Karjalainen (AC Oulu), open play, 0.04 xG, off target 76’ Lamine Ghezali (AC Oulu), open play, 0.04 xG, blocked 38’ Julius Paananen (AC Oulu), open play, 0.03 xG, saved 89’ Julius Körkkö (AC Oulu), set piece, 0.04 xG, saved 55’ Saku Heiskanen (KuPS), open play, 0.03 xG, blocked 90+2’ Rasmus Karjalainen (AC Oulu), set piece, 0.01 xG, off target 26’ Lamine Ghezali (AC Oulu), from a corner, 0.01 xG, blocked 25’ Rasmus Karjalainen (AC Oulu), open play, 0.00 xG, off target 52’ Julius Paananen (AC Oulu), set piece, 0.00 xG, off target 64’ Rasmus Karjalainen (AC Oulu), open play, 0.80 xG, goal 44’ Rasmus Karjalainen (AC Oulu), penalty, 0.76 xG, goal 5’ Bob Nii Armah (KuPS), open play, 0.46 xG, goal 72’ Jaime Moreno (KuPS), from a corner, 0.19 xG, off target 3’ Saku Heiskanen (KuPS), open play, 0.16 xG, blocked 3’ Jaime Moreno (KuPS), open play, 0.14 xG, saved 8’ Saku Savolainen (KuPS), from a corner, 0.12 xG, off target 69’ Bob Nii Armah (KuPS), open play, 0.11 xG, saved 22’ Jaime Moreno (KuPS), open play, 0.09 xG, hit the woodwork 77’ Otto Ruoppi (KuPS), open play, 0.10 xG, goal 63’ Rasmus Karjalainen (AC Oulu), from a corner, 0.08 xG, off target 47’ Jaime Moreno (KuPS), open play, 0.08 xG, goal 1’ Jaime Moreno (KuPS), open play, 0.07 xG, blocked 32’ Julius Körkkö (AC Oulu), open play, 0.05 xG, hit the woodwork 36’ Bob Nii Armah (KuPS), open play, 0.05 xG, saved 73’ Rasmus Karjalainen (AC Oulu), open play, 0.04 xG, off target 76’ Lamine Ghezali (AC Oulu), open play, 0.04 xG, blocked 89’ Julius Körkkö (AC Oulu), set piece, 0.04 xG, saved 38’ Julius Paananen (AC Oulu), open play, 0.03 xG, saved 55’ Saku Heiskanen (KuPS), open play, 0.03 xG, blocked 90+2’ Rasmus Karjalainen (AC Oulu), set piece, 0.01 xG, off target 26’ Lamine Ghezali (AC Oulu), from a corner, 0.01 xG, blocked 25’ Rasmus Karjalainen (AC Oulu), open play, 0.00 xG, off target 52’ Julius Paananen (AC Oulu), set piece, 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

KuPS 4-2-3-1 Starting XI
Kreidl
Savolainen
Hämäläinen 79’
Adams
Antwi
Gasc
Pennanen
Heiskanen 63’
Armah 79’
Ruoppi
Moreno
AC Oulu 4-4-2 Starting XI
Santos
Kaukua
Pitkänen
Pirinen
Kemppainen 83’
Kallio 64’
Mendolin
Paananen 64’
Ghezali
Karjalainen 2
Körkkö

Player stats

Goalkeeper1 player
90′ 2 2 66 – – – – –
Defenders5 players
90′ – 1 – – – 45 3 – – –
Taneli Hämäläinen Taken off
79′ 1 1 – 6 3 56 – – – –
90′ – 3 – 5 4 77 – – – –
90′ – 2 – 3 – 60 1 – – –
Brahima Magassa Came on as a substitute
15′ – – – 1 – 4 – – – –
Midfielders6 players
90′ – – 70 – – 1 4 2 2 2 –
90′ – – 74 1 0.19 1 – 4 1 2 –
Saku Heiskanen Taken off
63′ – – 30 1 0.14 – 1 4 – – –
90′ 1 2 47 6 0.89 – 1 10 1 – –
Bob Nii Armah Taken off
79′ 1 – 33 – – – – 9 1 1 –
Joslyn Luyeye-Lutumba Came on as a substitute
31′ – – 8 1 0.11 – – 2 1 – –
Forwards2 players
90′ 1 – 5 2 0.57 – 1 6 – 24 –
Gustav Engvall Came on as a substitute
15′ – – – – – – – 1 – 5 –
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.