Ligue 1 Regular Season - 30

Lens 3 - 2 FT Toulouse

Stade Bollaert-Delelis

Match previews and recaps to help you decide which games are worth watching

Futmetrix Verdict
100
FT
Fri, Apr 17
Français
Lens
3-2
Toulouse
⚡ Intensity 100
⚖️ Balance 87
🏆 Stakes 98
🎲 Upset 0
Lens complete stunning comeback against Toulouse.

Lens Complete Sensational Comeback After Early Toulouse Blitz

Must-Watch Futmetrix Score: 100/100. A dramatic five-goal thriller that proved vital for Lens' title chase, showcasing relentless attacking pressure against a stubborn ten-man resistance.

The Opening Shock

Toulouse struck early, defying the Stakes against title-chasing Lens in an astonishing start to the evening. In the 6th minute, C. Casseres stunned the vocal Stade Bollaert-Delelis crowd with a razor-sharp finish to open the scoring. Before the shell-shocked hosts could even recover their defensive shape, S. Koumbassa doubled the advantage just seven minutes later, finishing a swift move set up by S. Hidalgo. The visitors looked completely poised to cause a massive upset, but the match abruptly turned on its head in the 17th minute. Y. Gboho was shown a straight red card for roughing, completely altering the Balance of the tie. Forced into an ultra-defensive low block, Toulouse had to weather an unprecedented storm for the remaining 70 minutes, desperately trying to protect their two-goal lead with a severe numerical disadvantage.

The Siege Begins

With a man advantage, Lens dominated possession, commanding a staggering 78% of the ball as they pinned the visitors inside their own penalty area. The Intensity of their attacking play was relentless, turning the pitch into a veritable shooting gallery. It took until the 61st minute to finally break the resilient defensive line when S. Abdulhamid found the back of the net after a crucial assist from substitute A. Saint-Maximin. Just six minutes later, A. Thomasson fired home to level the scoreline and erase the deficit entirely. Throughout this dominant period, Matthieu Udol orchestrated the midfield brilliantly. Despite the visitors' goalkeeper producing heroic saves amidst a barrage of 42 total shots and 15 corners, the equaliser felt entirely inevitable given the overwhelming, one-sided pressure applied by the unrelenting hosts.

A Stoppage-Time Masterpiece

As the clock ticked down toward the final whistle, the desperation on the pitch amplified. The title-chasing hosts knew a mere draw would severely dent their Champions League ambitions and title hopes. In the 90th minute, the incessant pressure finally shattered Toulouse's courageous resistance once and for all. Substitute A. Bulatovic delivered a perfectly weighted ball for I. Ganiou, who smashed home the decisive late winner to complete the turnaround. The emotional eruption at Stade Bollaert-Delelis was deafening, rewarding the fans' unwavering belief. This remarkable 3-2 victory keeps Lens firmly in the upper echelons of the table, trailing the league leaders by just four points with four matches remaining. For Toulouse, it was a heartbreaking end to a gritty defensive display, but the sheer shot volume ultimately proved too massive to withstand.

Key Questions

How did the red card for Y. Gboho impact the match?

The 17th-minute dismissal forced Toulouse to defend deep. It allowed Lens to completely dominate possession and register 42 shots to complete their sensational comeback.

What caused the 5-goal thriller?

Two rapid early goals from Toulouse set up a dramatic scenario, but an early red card invited an overwhelming, relentless attacking siege from Lens.

How dramatic was the late winner by Saud Abdulhamid?

Abdulhamid actually sparked the comeback in the 61st minute, but it was I. Ganiou who dramatically snatched the 90th-minute victory to cap off the thrilling fightback.

What is the Futmetrix Score?

The Futmetrix Score is our 0-100 verdict on how entertaining a match is. We look at intensity, balance, stakes, and star quality to tell you if it's worth your time.

Match Statistics

Possession
78%
22%
Lens 78%
Toulouse 22%
Shots
42
5
Lens 42
Toulouse 5
Shots on Target
13
2
Lens 13
Toulouse 2
Expected Goals (xG)
3.77
0.41
Lens 3.77
Toulouse 0.41
Passes
595
176
Lens 595
Toulouse 176
Pass Accuracy
89%
63%
Lens 89%
Toulouse 63%
Corners
14
1
Lens 14
Toulouse 1
Fouls
9
15
Lens 9
Toulouse 15
Yellow Cards
1
1
Lens 1
Toulouse 1
Red Cards
0
1
Lens 0
Toulouse 1

Match Events

C. Casseres 6'
S. Koumbassa (S. Hidalgo) 13'
Y. Gboho 🟥 17'
C. Martinez 🟨 28'
45' 🟨 A. Masuaku
HT
S. Hidalgo P. Demba 🔄 46'
55' 🔄 R. Fofana O. Edouard
55' 🔄 W. Said A. Saint-Maximin
61' S. Abdulhamid (A. Saint-Maximin)
A. Donnum D. Methalie 🔄 64'
Emersonn J. Russell-Rowe 🔄 64'
67' A. Thomasson
C. Cresswell D. Sidibe 🔄 72'
72' 🔄 F. Sotoca F. Thauvin
A. Vossah M. Sauer 🔄 76'
85' 🔄 A. Masuaku S. Baidoo
85' 🔄 A. Thomasson A. Bulatovic
M. Sauer 🟨 88'
90'+1 I. Ganiou (A. Bulatovic)
FT

Player Cards

Our take on every player in this match

Lens

Goalkeepers
Robin Risser
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Defenders
Ismaelo Ganiou
CLUTCH HERO
CLUTCH HERO
90
Goal Time
90
Goal Time
Goal
Impact
7.2
Rating
Malang Sarr
WALL
WALL
0
Dribbled Past
0
Dribbled Past
3
Tackles
88%
Duel Win %
Arthur Masuaku
ARCHITECT
ARCHITECT
2
Key Passes
2
Key Passes
0
Assists
80%
Pass Acc
Midfielders
Saud Abdulhamid
SNIPER
SNIPER
100%
Conversion
100%
Conversion
1
Goals
1
Shots
Mamadou Sangare
ARCHITECT
ARCHITECT
6
Key Passes
6
Key Passes
0
Assists
64%
Pass Acc
Adrien Thomasson
ARCHITECT
ARCHITECT
5
Key Passes
5
Key Passes
0
Assists
27%
Pass Acc
Matthieu Udol
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
0
Assists
43%
Pass Acc
Forwards
Florian Sotoca
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
72
Total Mins
72
Entry
Wesley Said
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
55
Total Mins
55
Entry
Rayan Fofana
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
55
Total Mins
55
Entry
BENCH
Mathieu Gorgelin
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Samson Baidoo
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
10
Total Mins
Started
Entry
Ruben Aguilar
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Andrija Bulatovic
SUPER SUB
SUPER SUB
1
Assist
1
Assist
10
Minutes
6.9
Rating
Amadou Haidara
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Allan Saint-Maximin
SUPER SUB
SUPER SUB
1
Assist
1
Assist
35
Minutes
7.2
Rating
Odsonne Édouard
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
35
Total Mins
Started
Entry
Abdallah Sima
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Florian Thauvin
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
18
Total Mins
Started
Entry

Toulouse

Goalkeepers
Guillaume Restes
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Defenders
Seny Koumbassa
SNIPER
SNIPER
100%
Conversion
100%
Conversion
1
Goals
1
Shots
Charlie Cresswell
GHOST
GHOST
13
Actions
13
Actions
72
Minutes
6.7
Rating
Rasmus Nicolaisen
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
4
Duels Won
0
Pens Won
Midfielders
Aron Dønnum
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
64
Total Mins
64
Entry
Cristian Cásseres Jr.
SNIPER
SNIPER
100%
Conversion
100%
Conversion
1
Goals
1
Shots
Alexis Vossah
LATE SHIFT
LATE SHIFT
14
Late Mins
14
Late Mins
76
Total Mins
76
Entry
Warren Kamanzi
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Forwards
Yann Gboho
FRIENDLY FIRE
FRIENDLY FIRE
Red Card
Mistake
Red Card
Mistake
1
Fouls
3
Rating
Santiago Hidalgo
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.9
Rating
Emersonn
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
64
Total Mins
64
Entry
BENCH
Kjetil Haug
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Gaëtan Bakhouche
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Djibril Sidibe
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
18
Total Mins
Started
Entry
Dayann Methalie
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
26
Total Mins
Started
Entry
Pape Diop
SWEEPER
SWEEPER
5
Cleanups
5
Cleanups
1
Interceptions
4
Blocks
Mario Sauer
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
14
Total Mins
Started
Entry
Jacen Russell-Rowe
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
26
Total Mins
Started
Entry
Ilyas Azizi
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Julian Vignolo
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Head to Head

Date Home Score Away Competition Venue
01/02/2026 Toulouse 0 - 3 Lens Ligue 1 Stadium de Toulouse
05/10/2025 Toulouse 1 - 1 Lens Ligue 1 Stadium de Toulouse
01/05/2025 Lens 0 - 1 Toulouse Ligue 1 Stade Bollaert-Delelis
01/28/2024 Toulouse 0 - 2 Lens Ligue 1 Stadium de Toulouse
09/24/2023 Lens 2 - 1 Toulouse Ligue 1 Stade Bollaert-Delelis
05/02/2023 Toulouse 0 - 1 Lens Ligue 1 Stadium de Toulouse
01/02/2026
0 - 3
Ligue 1 Stadium de Toulouse
05/10/2025
1 - 1
Ligue 1 Stadium de Toulouse
01/05/2025
0 - 1
Ligue 1 Stade Bollaert-Delelis
01/28/2024
0 - 2
Ligue 1 Stadium de Toulouse
09/24/2023
2 - 1
Ligue 1 Stade Bollaert-Delelis
05/02/2023
0 - 1
Ligue 1 Stadium de Toulouse
Lens Win
Toulouse Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Paris Saint Germain 29 66 65 25 +40 WParis Saint Germain 3 - 0 Nantes (22-04-2026)LParis Saint Germain 1 - 2 Lyon (19-04-2026)WParis Saint Germain 3 - 1 Toulouse (03-04-2026)WNice 0 - 4 Paris Saint Germain (21-03-2026)LParis Saint Germain 1 - 3 Monaco (06-03-2026)
2 Lens 29 62 57 29 +28 WLens 3 - 2 Toulouse (17-04-2026)LLille 3 - 0 Lens (04-04-2026)WLens 5 - 1 Angers (20-03-2026)LLorient 2 - 1 Lens (14-03-2026)WLens 3 - 0 Metz (08-03-2026)
3 Lille 30 54 49 34 +15 DLille 0 - 0 Nice (18-04-2026)WToulouse 0 - 4 Lille (12-04-2026)WLille 3 - 0 Lens (04-04-2026)WMarseille 1 - 2 Lille (22-03-2026)WRennes 1 - 2 Lille (15-03-2026)
4 Lyon 30 54 45 30 +15 WParis Saint Germain 1 - 2 Lyon (19-04-2026)WLyon 2 - 0 Lorient (12-04-2026)DAngers 0 - 0 Lyon (05-04-2026)LLyon 1 - 2 Monaco (22-03-2026)DLe Havre 0 - 0 Lyon (15-03-2026)
5 Rennes 30 53 52 41 +11 WStrasbourg 0 - 3 Rennes (19-04-2026)WRennes 2 - 1 Angers (11-04-2026)WStade Brestois 29 3 - 4 Rennes (04-04-2026)DRennes 0 - 0 Metz (22-03-2026)LRennes 1 - 2 Lille (15-03-2026)
6 Marseille 30 52 58 40 +18 LLorient 2 - 0 Marseille (18-04-2026)WMarseille 3 - 1 Metz (10-04-2026)LMonaco 2 - 1 Marseille (05-04-2026)LMarseille 1 - 2 Lille (22-03-2026)WMarseille 1 - 0 Auxerre (13-03-2026)
7 Monaco 30 50 52 45 +7 DMonaco 2 - 2 Auxerre (19-04-2026)LParis FC 4 - 1 Monaco (10-04-2026)WMonaco 2 - 1 Marseille (05-04-2026)WLyon 1 - 2 Monaco (22-03-2026)WMonaco 2 - 0 Stade Brestois 29 (14-03-2026)
8 Strasbourg 29 43 46 37 +9 LStrasbourg 0 - 3 Rennes (19-04-2026)WStrasbourg 3 - 1 Nice (04-04-2026)WNantes 2 - 3 Strasbourg (22-03-2026)DStrasbourg 0 - 0 Paris FC (15-03-2026)DAuxerre 0 - 0 Strasbourg (07-03-2026)
9 Lorient 30 41 40 44 -4 WLorient 2 - 0 Marseille (18-04-2026)LLyon 2 - 0 Lorient (12-04-2026)DLorient 1 - 1 Paris FC (05-04-2026)LToulouse 1 - 0 Lorient (21-03-2026)WLorient 2 - 1 Lens (14-03-2026)
10 Paris FC 30 38 40 46 -6 WMetz 1 - 3 Paris FC (19-04-2026)WParis FC 4 - 1 Monaco (10-04-2026)DLorient 1 - 1 Paris FC (05-04-2026)WParis FC 3 - 2 Le Havre (22-03-2026)DStrasbourg 0 - 0 Paris FC (15-03-2026)
11 Toulouse 30 37 41 42 -1 LLens 3 - 2 Toulouse (17-04-2026)LToulouse 0 - 4 Lille (12-04-2026)LParis Saint Germain 3 - 1 Toulouse (03-04-2026)WToulouse 1 - 0 Lorient (21-03-2026)WMetz 3 - 4 Toulouse (15-03-2026)
12 Stade Brestois 29 29 37 38 44 -6 DNantes 1 - 1 Stade Brestois 29 (19-04-2026)LStade Brestois 29 3 - 4 Rennes (04-04-2026)LAuxerre 3 - 0 Stade Brestois 29 (21-03-2026)LMonaco 2 - 0 Stade Brestois 29 (14-03-2026)WStade Brestois 29 2 - 0 Le Havre (08-03-2026)
13 Angers 30 34 26 40 -14 DAngers 1 - 1 Le Havre (18-04-2026)LRennes 2 - 1 Angers (11-04-2026)DAngers 0 - 0 Lyon (05-04-2026)LLens 5 - 1 Angers (20-03-2026)LAngers 0 - 2 Nice (14-03-2026)
14 Le Havre 30 30 25 38 -13 DAngers 1 - 1 Le Havre (18-04-2026)DNice 1 - 1 Le Havre (12-04-2026)DLe Havre 1 - 1 Auxerre (05-04-2026)LParis FC 3 - 2 Le Havre (22-03-2026)DLe Havre 0 - 0 Lyon (15-03-2026)
15 Nice 30 29 34 56 -22 DLille 0 - 0 Nice (18-04-2026)DNice 1 - 1 Le Havre (12-04-2026)LStrasbourg 3 - 1 Nice (04-04-2026)LNice 0 - 4 Paris Saint Germain (21-03-2026)WAngers 0 - 2 Nice (14-03-2026)
16 Auxerre 30 25 25 39 -14 DMonaco 2 - 2 Auxerre (19-04-2026)DAuxerre 0 - 0 Nantes (11-04-2026)DLe Havre 1 - 1 Auxerre (05-04-2026)WAuxerre 3 - 0 Stade Brestois 29 (21-03-2026)LMarseille 1 - 0 Auxerre (13-03-2026)
17 Nantes 30 20 25 49 -24 LParis Saint Germain 3 - 0 Nantes (22-04-2026)DNantes 1 - 1 Stade Brestois 29 (19-04-2026)DAuxerre 0 - 0 Nantes (11-04-2026)DMetz 0 - 0 Nantes (05-04-2026)LNantes 2 - 3 Strasbourg (22-03-2026)
18 Metz 30 15 27 66 -39 LMetz 1 - 3 Paris FC (19-04-2026)LMarseille 3 - 1 Metz (10-04-2026)DMetz 0 - 0 Nantes (05-04-2026)DRennes 0 - 0 Metz (22-03-2026)LMetz 3 - 4 Toulouse (15-03-2026)