Luzern vs Zurich

12 May 2026 · Swiss Super League · 2025/26 · Referee Desiree Grundbacher

Full time 1 – 0

Half-time: 0–0

  • Oscar Kabwit 70’

Match summary

Luzern won 1-0 at home to Zurich. It was goalless at half-time.

Oscar Kabwit put Luzern ahead in the 70th minute.

The chances backed that up: Luzern created 2.36 expected goals (xG) from 13 shots to Zurich's 1.80 from 16. Luzern had a player sent off.

Match stats

52% Possession 48%
13 Shots 16
4 Shots on target 3
10 Corners 5
71 Attacks 74
47 Dangerous attacks 42
376 Passes 350
80.1% Pass accuracy 81.4%
24 Tackles 11
14 Fouls 9
2 Yellow cards 0
1 Red cards 0
3 Offsides 1

Key events

Luzern Zurich
Kick-off
18’
Juan José PereaShot on target
28’
Selmin HodzaShot on target
Rúben DantasShot on target
35’
Half-time0-0
Second half underway
56’
Levin WinklerShot on target
56’
59’
Sebastian WalkerIvan Cavaleiro
Oscar KabwitLeft foot shot1-0 (Luzern)
70’
Bung Meng FreimannVAR: Card upgraded
77’
Lars VilligerAndrej Vasovic
79’
89’
Din RamicShot on target
Kevin SpadanudaShot on target
90+4’

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 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.36 1.80 70’ Oscar Kabwit (Luzern), 1-0 70’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.36 1.80 70’ Oscar Kabwit (Luzern), 1-0 Kabwit 70’
Luzern 2.36 xGZurich 1.80 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Zurich attacking Luzern attacking 
52’ Andrej Vasovic (Luzern), open play, 0.95 xG, hit the woodwork 68’ Juan José Perea (Zurich), open play, 0.43 xG, off target 70’ Oscar Kabwit (Luzern), open play, 0.38 xG, goal 18’ Philippe Keny (Zurich), open play, 0.35 xG, off target 37’ Andrej Vasovic (Luzern), open play, 0.29 xG, hit the woodwork 90+4’ Kevin Spadanuda (Luzern), open play, 0.26 xG, saved 65’ Juan José Perea (Zurich), from a corner, 0.24 xG, off target 81’ Sebastian Walker (Zurich), set piece, 0.14 xG, off target 81’ Nevio Di Giusto (Zurich), set piece, 0.13 xG, blocked 40’ Oscar Kabwit (Luzern), open play, 0.10 xG, off target 48’ Andrej Vasovic (Luzern), from a corner, 0.11 xG, off target 90+2’ Matteo Di Giusto (Luzern), open play, 0.08 xG, off target 18’ Juan José Perea (Zurich), open play, 0.07 xG, saved 18’ Matteo Di Giusto (Luzern), direct free kick, 0.07 xG, off target 81’ Nevio Di Giusto (Zurich), set piece, 0.07 xG, blocked 89’ Din Ramic (Zurich), set piece, 0.06 xG, saved 90+2’ Nevio Di Giusto (Zurich), open play, 0.07 xG, blocked 83’ Juan José Perea (Zurich), open play, 0.06 xG, off target 81’ Lindrit Kamberi (Zurich), set piece, 0.05 xG, off target 10’ Juan José Perea (Zurich), set piece, 0.04 xG, off target 35’ Rúben Dantas (Luzern), open play, 0.04 xG, saved 36’ Matteo Di Giusto (Luzern), open play, 0.04 xG, blocked 4’ Pius Dorn (Luzern), from a corner, 0.03 xG, blocked 29’ Alexander Hack (Zurich), from a corner, 0.03 xG, off target 79’ Lindrit Kamberi (Zurich), direct free kick, 0.03 xG, off target 33’ Lindrit Kamberi (Zurich), set piece, 0.02 xG, off target 56’ Levin Winkler (Luzern), open play, 0.02 xG, saved 28’ Selmin Hodza (Zurich), from a corner, 0.01 xG, saved 37’ Matteo Di Giusto (Luzern), from a corner, 0.01 xG, blocked 52’ Andrej Vasovic (Luzern), open play, 0.95 xG, hit the woodwork 68’ Juan José Perea (Zurich), open play, 0.43 xG, off target 70’ Oscar Kabwit (Luzern), open play, 0.38 xG, goal 18’ Philippe Keny (Zurich), open play, 0.35 xG, off target 37’ Andrej Vasovic (Luzern), open play, 0.29 xG, hit the woodwork 90+4’ Kevin Spadanuda (Luzern), open play, 0.26 xG, saved 65’ Juan José Perea (Zurich), from a corner, 0.24 xG, off target 81’ Sebastian Walker (Zurich), set piece, 0.14 xG, off target 81’ Nevio Di Giusto (Zurich), set piece, 0.13 xG, blocked 48’ Andrej Vasovic (Luzern), from a corner, 0.11 xG, off target 40’ Oscar Kabwit (Luzern), open play, 0.10 xG, off target 90+2’ Matteo Di Giusto (Luzern), open play, 0.08 xG, off target 81’ Nevio Di Giusto (Zurich), set piece, 0.07 xG, blocked 18’ Juan José Perea (Zurich), open play, 0.07 xG, saved 18’ Matteo Di Giusto (Luzern), direct free kick, 0.07 xG, off target 89’ Din Ramic (Zurich), set piece, 0.06 xG, saved 90+2’ Nevio Di Giusto (Zurich), open play, 0.07 xG, blocked 83’ Juan José Perea (Zurich), open play, 0.06 xG, off target 81’ Lindrit Kamberi (Zurich), set piece, 0.05 xG, off target 10’ Juan José Perea (Zurich), set piece, 0.04 xG, off target 35’ Rúben Dantas (Luzern), open play, 0.04 xG, saved 36’ Matteo Di Giusto (Luzern), open play, 0.04 xG, blocked 4’ Pius Dorn (Luzern), from a corner, 0.03 xG, blocked 29’ Alexander Hack (Zurich), from a corner, 0.03 xG, off target 79’ Lindrit Kamberi (Zurich), direct free kick, 0.03 xG, off target 33’ Lindrit Kamberi (Zurich), set piece, 0.02 xG, off target 56’ Levin Winkler (Luzern), open play, 0.02 xG, saved 28’ Selmin Hodza (Zurich), from a corner, 0.01 xG, saved 37’ Matteo Di Giusto (Luzern), from a corner, 0.01 xG, blocked
Size shows xG Goal On target Off target or blocked

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

Lineups

Luzern 4-2-2-2 Starting XI
Loretz
Dantas 72’
Freimann
Bajrami
Dorn
Owusu
Winkler 73’
Silva 64’
Giusto
Kabwit 79’
Vasovic 79’
Zurich 4-2-3-1 Starting XI
Huber
Hack
Sauter 80’
Hodza
Kamberi
Reichmuth 80’
Palacio
Cavaleiro 59’
Krasniqi 59’
Perea
Keny 59’

Player stats

Goalkeeper1 player
90′ 3 0 43 1 – – – –
Defenders6 players
90′ 2 1 – 4 – 26 2 – –
Bung Meng Freimann Sent off
77′ 1 2 – 4 2 56 1 – –
90′ 4 – – 6 2 42 1 – – –
Rúben Dantas Taken off
72′ 3 – – 6 – 27 2 – – –
Andrejs Cigaņiks Came on as a substitute
18′ 2 – – 3 1 5 – – – –
Stefan Knežević Came on as a substitute
11′ – 1 – – – 2 1 – –
Midfielders6 players
90′ – 1 50 3 – 2 1 4 – – –
Levin Winkler Taken off
73′ – – 23 – – 4 1 6 3 1 –
Lucas Silva Taken off
64′ – – 27 3 – 1 1 2 – – –
90′ – – 28 1 – 2 2 3 2 – –
Kevin Spadanuda Came on as a substitute
26′ – – 9 – – 1 – 3 1 1 –
Taisei Abe Came on as a substitute
17′ – – 6 – – – – – – – –
Forwards3 players
Oscar Kabwit Taken off
79′ 1 – 2 1 0.48 – 2 1 – 15 –
Andrej Vasovic Taken off
79′ – – 3 – 1.34 – – 2 – 10 –
Lars Villiger Came on as a substitute
11′ – – – – – – – 2 1 6 –
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.