Grasshoppers vs Zurich

30 March 2025 · Swiss Super League · 2024/25 · Referee Luca Cibelli

Full time 1 – 2

Half-time: 0–1

  • Adama Bojang 82’
  • Jean-Philippe Gbamin 45+2’
  • Bledian Krasniqi 68’

Match summary

Zurich beat Grasshoppers 2-1 on the road. Zurich led 1-0 at half-time.

Jean-Philippe Gbamin put Zurich ahead from a corner in first-half stoppage time, Bledian Krasniqi made it 0-2 with a header in the 68th minute, and Adama Bojang pulled one back to make it 1-2 in the 82nd minute.

Key events

Grasshoppers Zurich
Kick-off
4’
Bledian KrasniqiShot on target
5’
Mounir ChouiarShot on target
10’
Rodrigo ConceiçãoShot on target
18’
Steven ZuberShot on target
32’
Benjamin MendyOff the ball foul
Nestory IrankundaShot on target
44’
45+2’
Jean-Philippe GbaminRight foot shot0-1 (Zurich)
Half-time0-1
46’
Steven ZuberShot on target
47’
Steven ZuberShot on target
47’
Lindrit KamberiShot on target
Second half underway
Mathieu ChoinièreFoul
51’
60’
Samuel BalletShot on target
61’
Jahnoah MarkeloSamuel Ballet
Tomas Veron LupiDirk Abels
63’
66’
Lindrit KamberiShot on target
68’
Bledian KrasniqiHeader0-2 (Zurich)
Tomas Veron LupiArgument
69’
Sonny KittelMathieu Choinière
78’
80’
Cheveyo TsawaShot on target
Adama BojangLeft foot shot1-2 (Grasshoppers)
82’
89’
Vincent NvendoMounir Chouiar
90+3’
Jahnoah MarkeloShot on target
Benno SchmitzArgument
90+4’
Full-time1-2

Shot map

Every shot and where it was taken from.

 Zurich attacking Grasshoppers attacking 
4’ Bledian Krasniqi (Zurich), open play, saved 5’ Mounir Chouiar (Zurich), open play, saved 10’ Rodrigo Conceição (Zurich), open play, saved 13’ Adama Bojang (Grasshoppers), from a corner, off target 18’ Steven Zuber (Zurich), from a corner, saved 20’ Dirk Abels (Grasshoppers), set piece, off target 21’ Benjamin Mendy (Zurich), open play, blocked 24’ Samuel Ballet (Zurich), open play, blocked 27’ Steven Zuber (Zurich), open play, off target 37’ Lindrit Kamberi (Zurich), open play, off target 40’ Jean-Philippe Gbamin (Zurich), open play, off target 44’ Nestory Irankunda (Grasshoppers), open play, saved 46’ Steven Zuber (Zurich), from a corner, saved 47’ Jean-Philippe Gbamin (Zurich), from a corner, goal 47’ Steven Zuber (Zurich), from a corner, saved 47’ Steven Zuber (Zurich), open play, blocked 47’ Lindrit Kamberi (Zurich), from a corner, saved 58’ Noah Persson (Grasshoppers), set piece, hit the woodwork 60’ Mariano Gómez (Zurich), from a corner, off target 60’ Samuel Ballet (Zurich), open play, saved 62’ Bledian Krasniqi (Zurich), open play, off target 64’ Bryan Lasme (Grasshoppers), set piece, off target 64’ Adama Bojang (Grasshoppers), set piece, off target 66’ Lindrit Kamberi (Zurich), open play, saved 68’ Bledian Krasniqi (Zurich), open play, goal 70’ Nikolas Muci (Grasshoppers), open play, off target 76’ Adama Bojang (Grasshoppers), open play, off target 79’ Jahnoah Markelo (Zurich), open play, blocked 80’ Cheveyo Tsawa (Zurich), open play, saved 82’ Adama Bojang (Grasshoppers), open play, goal 86’ Mounir Chouiar (Zurich), open play, off target 90+1’ Noah Persson (Grasshoppers), from a corner, off target 90+1’ Benno Schmitz (Grasshoppers), open play, blocked 90+2’ Jahnoah Markelo (Zurich), open play, off target 90+3’ Jahnoah Markelo (Zurich), open play, saved 4’ Bledian Krasniqi (Zurich), open play, saved 5’ Mounir Chouiar (Zurich), open play, saved 10’ Rodrigo Conceição (Zurich), open play, saved 13’ Adama Bojang (Grasshoppers), from a corner, off target 18’ Steven Zuber (Zurich), from a corner, saved 20’ Dirk Abels (Grasshoppers), set piece, off target 21’ Benjamin Mendy (Zurich), open play, blocked 24’ Samuel Ballet (Zurich), open play, blocked 27’ Steven Zuber (Zurich), open play, off target 37’ Lindrit Kamberi (Zurich), open play, off target 40’ Jean-Philippe Gbamin (Zurich), open play, off target 44’ Nestory Irankunda (Grasshoppers), open play, saved 46’ Steven Zuber (Zurich), from a corner, saved 47’ Jean-Philippe Gbamin (Zurich), from a corner, goal 47’ Steven Zuber (Zurich), from a corner, saved 47’ Steven Zuber (Zurich), open play, blocked 47’ Lindrit Kamberi (Zurich), from a corner, saved 58’ Noah Persson (Grasshoppers), set piece, hit the woodwork 60’ Mariano Gómez (Zurich), from a corner, off target 60’ Samuel Ballet (Zurich), open play, saved 62’ Bledian Krasniqi (Zurich), open play, off target 64’ Bryan Lasme (Grasshoppers), set piece, off target 64’ Adama Bojang (Grasshoppers), set piece, off target 66’ Lindrit Kamberi (Zurich), open play, saved 68’ Bledian Krasniqi (Zurich), open play, goal 70’ Nikolas Muci (Grasshoppers), open play, off target 76’ Adama Bojang (Grasshoppers), open play, off target 79’ Jahnoah Markelo (Zurich), open play, blocked 80’ Cheveyo Tsawa (Zurich), open play, saved 82’ Adama Bojang (Grasshoppers), open play, goal 86’ Mounir Chouiar (Zurich), open play, off target 90+1’ Noah Persson (Grasshoppers), from a corner, off target 90+1’ Benno Schmitz (Grasshoppers), open play, blocked 90+2’ Jahnoah Markelo (Zurich), open play, off target 90+3’ Jahnoah Markelo (Zurich), open play, saved
Goal On target Off target or blocked

Hover or tap a shot for the player and minute.

Lineups

Grasshoppers 4-2-3-1 Starting XI
Hammel
Seko
Persson
Ndenge
Schmitz
Choinière 78’
Abrashi 63’
Abels 63’
Morandi
Irankunda 63’
Bojang
Zurich 4-2-3-1 Starting XI
Brecher
Mendy 46’
Gómez
Gbamin
Kamberi
Krasniqi 89’
Conceição 61’
Chouiar 89’
Zuber
Ballet 61’
Ligue

Player stats

Goalkeeper1 player
90′ 10 2 43 – – – – –
Defenders3 players
Benno Schmitz
90′ 6 – 1 11 3 20 1 – –
Ayumu Seko
90′ 2 1 2 3 1 27 3 – – –
90′ 3 1 1 7 1 28 – – – –
Midfielders9 players
Tsiy William Ndenge
90′ – – 35 – – 4 2 6 – – –
Mathieu Choinière Taken off
78′ – – 24 1 – 4 1 11 2 4
Amir Abrashi Taken off
63′ – – 17 – – 3 – 3 1 – –
Dirk Abels Taken off
63′ – – 7 – – 1 1 4 1 1 –
90′ – 1 34 3 – 2 1 4 1 – –
Nestory Irankunda Taken off
63′ – – 10 – – 2 – 4 – 2 –
Tomas Veron Lupi Came on as a substitute
27′ – – 13 1 – 1 – 3 – –
Tim Meyer Came on as a substitute
12′ – – 9 – – 3 – 4 – – –
Sonny Kittel Came on as a substitute
12′ – – 6 – – – – – – – –
Forwards3 players
90′ 1 – 4 1 – – 2 8 – 23 –
Bryan Lasme Came on as a substituteTaken off
27′ – – 1 – – – –
Nikolas Muci Came on as a substitute
27′ – – 1 – – – 1 – – 7 –
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. A blank cell means that figure is not available for that player.

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.