Zurich vs Luzern

24 October 2026 · Swiss Super League · 2026/27 · Referee Nico Gianforte

Full time 2 – 1

Half-time: 1–0

  • Philippe Keny 26’ (pen)
  • Bung Meng Freimann 52’ (og)
  • Oscar Kabwit 71’

Match summary

Zurich beat Luzern 2-1. Zurich led 1-0 at half-time.

Philippe Keny put Zurich ahead from the penalty spot in the 26th minute, Freimann's own goal made it 2-0 in the 52nd minute, and Oscar Kabwit pulled one back to make it 2-1 with a header in the 71st minute.

Luzern can feel hard done by, creating 2.83 expected goals (xG) from 28 shots to Zurich's 1.74 from 13.

Match stats

43% Possession 57%
13 Shots 28
6 Shots on target 6
2 Corners 9
99 Attacks 103
40 Dangerous attacks 58
357 Passes 471
75.4% Pass accuracy 77.9%
18 Tackles 24
7 Fouls 13
2 Yellow cards 1
0 Red cards 0
1 Offsides 2

Key events

Zurich Luzern
Kick-off
Philippe KenyShot on target
15’
Umeh EmmanuelShot on target
17’
25’
Philippe KenyPenalty1-0 (Zurich)
26’
38’
Matteo Di GiustoShot on target
Kevin SpadanudaShot on target
40’
Second half underway
Half-time1-0
49’
Bung Meng FreimannOwn goal2-0 (Zurich)
52’
65’
Nando ToggenburgerShot on target
Mohamed BangouraShot on target
69’
70’
Daniel MikołajewskiShot on target
71’
Oscar KabwitHeader2-1 (Luzern)
Umeh EmmanuelShot on target
73’
79’
90+4’
Pius DornShot on target
Full-time2-1

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 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.74 2.83 26’ Philippe Keny (Zurich), 1-0 26’ 52’ Bung Meng Freimann (Zurich) own goal, 2-0 52’ 71’ Oscar Kabwit (Luzern), 2-1 71’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.74 2.83 26’ Philippe Keny (Zurich), 1-0 Keny 26’ 52’ Bung Meng Freimann (Zurich) own goal, 2-0 Freimann 52’ 71’ Oscar Kabwit (Luzern), 2-1 Kabwit 71’
Zurich 1.74 xGLuzern 2.83 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Luzern attacking Zurich attacking 
26’ Philippe Keny (Zurich), penalty, 0.79 xG, goal 90+4’ Pius Dorn (Luzern), open play, 0.36 xG, saved 65’ Nando Toggenburger (Luzern), open play, 0.31 xG, saved 73’ Umeh Emmanuel (Zurich), open play, 0.29 xG, saved 70’ Daniel Mikołajewski (Luzern), open play, 0.26 xG, saved 60’ Nando Toggenburger (Luzern), open play, 0.20 xG, off target 65’ Matteo Di Giusto (Luzern), open play, 0.17 xG, off target 29’ Daniel Mikołajewski (Luzern), open play, 0.16 xG, off target 17’ Umeh Emmanuel (Zurich), open play, 0.15 xG, saved 90’ Matteo Di Giusto (Luzern), open play, 0.12 xG, off target 3’ Kevin Spadanuda (Zurich), open play, 0.11 xG, off target 68’ Levin Winkler (Luzern), open play, 0.11 xG, off target 88’ Andrejs Cigaņiks (Luzern), from a corner, 0.10 xG, off target 79’ Aurelio Oehlers (Luzern), open play, 0.10 xG, blocked 79’ Rúben Dantas (Luzern), open play, 0.09 xG, blocked 86’ Bung Meng Freimann (Luzern), from a corner, 0.09 xG, blocked 15’ Philippe Keny (Zurich), open play, 0.08 xG, saved 43’ Daniel Mikołajewski (Luzern), open play, 0.08 xG, off target 33’ Daniel Mikołajewski (Luzern), from a corner, 0.08 xG, blocked 71’ Oscar Kabwit (Luzern), from a corner, 0.08 xG, goal 8’ Umeh Emmanuel (Zurich), open play, 0.07 xG, off target 40’ Kevin Spadanuda (Zurich), open play, 0.07 xG, saved 90+1’ Nando Toggenburger (Luzern), open play, 0.07 xG, blocked 27’ Daniel Mikołajewski (Luzern), open play, 0.06 xG, blocked 36’ Oscar Kabwit (Luzern), open play, 0.06 xG, off target 52’ Miguel Reichmuth (Zurich), open play, 0.06 xG, off target 67’ Mio Zimmermann (Luzern), open play, 0.05 xG, blocked 11’ Matteo Di Giusto (Luzern), open play, 0.04 xG, off target 79’ Levin Winkler (Luzern), open play, 0.04 xG, blocked 88’ Daniel Mikołajewski (Luzern), open play, 0.04 xG, blocked 8’ Leandro Schödler (Zurich), open play, 0.04 xG, off target 38’ Matteo Di Giusto (Luzern), open play, 0.03 xG, saved 86’ Nando Toggenburger (Luzern), from a corner, 0.04 xG, blocked 85’ Bung Hua Freimann (Luzern), open play, 0.03 xG, blocked 45’ Miguel Reichmuth (Zurich), open play, 0.02 xG, off target 5’ Kevin Spadanuda (Zurich), open play, 0.02 xG, blocked 81’ Levin Winkler (Luzern), from a corner, 0.02 xG, blocked 2’ Matteo Di Giusto (Luzern), open play, 0.02 xG, off target 44’ Daniel Mikołajewski (Luzern), open play, 0.02 xG, blocked 48’ Miguel Reichmuth (Zurich), open play, 0.02 xG, blocked 69’ Mohamed Bangoura (Zurich), open play, 0.02 xG, saved 52’ Bung Meng Freimann (Luzern), own goal 26’ Philippe Keny (Zurich), penalty, 0.79 xG, goal 90+4’ Pius Dorn (Luzern), open play, 0.36 xG, saved 65’ Nando Toggenburger (Luzern), open play, 0.31 xG, saved 73’ Umeh Emmanuel (Zurich), open play, 0.29 xG, saved 70’ Daniel Mikołajewski (Luzern), open play, 0.26 xG, saved 60’ Nando Toggenburger (Luzern), open play, 0.20 xG, off target 65’ Matteo Di Giusto (Luzern), open play, 0.17 xG, off target 29’ Daniel Mikołajewski (Luzern), open play, 0.16 xG, off target 17’ Umeh Emmanuel (Zurich), open play, 0.15 xG, saved 90’ Matteo Di Giusto (Luzern), open play, 0.12 xG, off target 3’ Kevin Spadanuda (Zurich), open play, 0.11 xG, off target 68’ Levin Winkler (Luzern), open play, 0.11 xG, off target 79’ Aurelio Oehlers (Luzern), open play, 0.10 xG, blocked 88’ Andrejs Cigaņiks (Luzern), from a corner, 0.10 xG, off target 86’ Bung Meng Freimann (Luzern), from a corner, 0.09 xG, blocked 79’ Rúben Dantas (Luzern), open play, 0.09 xG, blocked 43’ Daniel Mikołajewski (Luzern), open play, 0.08 xG, off target 15’ Philippe Keny (Zurich), open play, 0.08 xG, saved 33’ Daniel Mikołajewski (Luzern), from a corner, 0.08 xG, blocked 71’ Oscar Kabwit (Luzern), from a corner, 0.08 xG, goal 8’ Umeh Emmanuel (Zurich), open play, 0.07 xG, off target 40’ Kevin Spadanuda (Zurich), open play, 0.07 xG, saved 90+1’ Nando Toggenburger (Luzern), open play, 0.07 xG, blocked 27’ Daniel Mikołajewski (Luzern), open play, 0.06 xG, blocked 36’ Oscar Kabwit (Luzern), open play, 0.06 xG, off target 52’ Miguel Reichmuth (Zurich), open play, 0.06 xG, off target 67’ Mio Zimmermann (Luzern), open play, 0.05 xG, blocked 11’ Matteo Di Giusto (Luzern), open play, 0.04 xG, off target 79’ Levin Winkler (Luzern), open play, 0.04 xG, blocked 88’ Daniel Mikołajewski (Luzern), open play, 0.04 xG, blocked 8’ Leandro Schödler (Zurich), open play, 0.04 xG, off target 86’ Nando Toggenburger (Luzern), from a corner, 0.04 xG, blocked 38’ Matteo Di Giusto (Luzern), open play, 0.03 xG, saved 85’ Bung Hua Freimann (Luzern), open play, 0.03 xG, blocked 45’ Miguel Reichmuth (Zurich), open play, 0.02 xG, off target 5’ Kevin Spadanuda (Zurich), open play, 0.02 xG, blocked 69’ Mohamed Bangoura (Zurich), open play, 0.02 xG, saved 81’ Levin Winkler (Luzern), from a corner, 0.02 xG, blocked 2’ Matteo Di Giusto (Luzern), open play, 0.02 xG, off target 44’ Daniel Mikołajewski (Luzern), open play, 0.02 xG, blocked 48’ Miguel Reichmuth (Zurich), open play, 0.02 xG, blocked 52’ Bung Meng Freimann (Luzern), own goal
Size shows xG Goal On target Off target or blocked

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

Lineups

Zurich 4-1-4-1 Starting XI
Huber
Hack
Schödler 89’
Lichtenstein
Kamberi
Walker
Spadanuda 64’
Emmanuel
Reichmuth
Comenencia 64’
Keny
Luzern 4-2-2-2 Starting XI
Letica
Freimann
Cigaņiks
Dorn
Freimann
Zimmermann 72’
Owusu 57’
Silva 56’
Giusto
Kabwit 72’
Mikołajewski

Player stats

Goalkeeper1 player
94′ 4 1 34 – – – – –
Defenders3 players
94′ 2 3 – 2 – 32 – – – –
94′ 2 2 3 2 – 45 1 – – –
94′ 3 3 2 8 3 47 – – – –
Midfielders9 players
94′ – – 31 – – 2 3 6 – – –
Leandro Schödler Taken off
89′ – – 34 – – 1 2 7 2 2 –
Kevin Spadanuda Taken off
64′ – – 14 – – 1 1 3 – 2 –
94′ – – 35 4 – 2 – 6 1 3
Livano Comenencia Taken off
64′ – – 21 – – 2 – 4 1 – –
94′ – – 22 3 – 1 3 8 – 1 –
Nevio Di Giusto Came on as a substitute
30′ – – 4 1 – – – – 1 – –
Mohamed Bangoura Came on as a substitute
30′ – – 4 – – – – 1 – – –
Valon Berisha Came on as a substitute
5′ – – 1 – – – – – – – –
Forwards1 player
94′ 1 – 2 2 0.87 – 1 17 3 33
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.