Ligue 1 Regular Season - 33

Toulouse 2 - 1 FT Lyon

Stadium de Toulouse

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

Futmetrix Verdict
89
FT
Sun, May 10
Français
Toulouse
2-1
Lyon
⚡ Intensity 70
⚖️ Balance 60
🏆 Stakes 78
🎲 Upset 60
Ten-man Toulouse stun high-flying Lyon.

Toulouse Defy the Odds in Gripping Stadium de Toulouse Upset

Must-Watch Futmetrix Score: 89/100. Our verdict is clear: this was a tactical masterclass in resilience that severely dents Lyon's Champions League aspirations.

The Early Breakthrough

The atmosphere at Stadium de Toulouse was electric as the hosts burst out of the gates. D. Methalie struck inside the opening ten minutes, clinically finishing a sharp, incisive pass from Y. Gboho to ignite the home crowd. That early strike immediately forced Lyon onto the back foot. The visitors responded by pushing high up the pitch. They dominated possession, suffocating the midfield areas, but consistently struggled to find clear openings through a resolute defensive line. The sheer Intensity of this opening half told a vivid story of rigid defending clashing against patient, probing attacks. Toulouse set their defensive block deep, happily inviting the pressure while actively looking for the counter. It was a fascinating tactical chess match. The home side absorbed wave after wave of possession without cracking under the weight of expectation.

A Frantic Final Quarter

The Balance of power finally shifted in a chaotic final quarter. After knocking on the door repeatedly, Endrick unlocked the rigid home defence in the 71st minute. He picked his head up and laid a perfect ball off for C. Tolisso, who made no mistake to level the scoring. At that moment, Lyon looked destined to complete the comeback and snatch all three points. Instead, the script flipped entirely. Substitute W. Kamanzi, brought on just minutes prior to inject fresh legs, stunned the visitors. He restored Toulouse's lead in the 78th minute with a brilliant finish. But the joy was immediately tempered by disaster. Barely a minute later, A. Donnum was shown a straight red card for holding, completely altering the tactical landscape once again.

Holding the Fortress

Down to ten men, the home side faced a monumental task to close out the match. The Stakes were undeniably huge for Lyon, who threw every available man forward in desperate search of a late equaliser to save their top-three ambitions. Moussa Niakhaté was immense at the back for the visitors, mopping up clearances and recycling the ball with total authority. Yet, despite facing a heavy barrage of late corners and mounting box pressure, the Toulouse defence held incredibly firm. The Upset Factor here simply cannot be overstated. This gritty, heroic victory leaves Lyon nervously looking over their shoulders in the tight race for Champions League qualification. Meanwhile, the result provides a massive mid-table morale boost for the hosts as the season winds down.

Key Questions

How did the red card for A. Donnum impact the match?

His 79th-minute dismissal forced Toulouse into a desperate deep block, testing their defensive resolve as they successfully fended off late waves of Lyon attacks.

What does this mean for Toulouse's season?

Safely in mid-table, this victory provides a massive confidence boost, proving they can outwork and outsmart top-tier opposition on home soil.

How did substitute Moussa Niakhaté change the game?

Though actually a starter in this match, Niakhaté was monumental. He anchored Lyon's backline with authority and drove possession forward, earning man of the match honors.

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
39%
61%
Toulouse 39%
Lyon 61%
Shots
14
13
Toulouse 14
Lyon 13
Shots on Target
6
2
Toulouse 6
Lyon 2
Expected Goals (xG)
1.19
1.20
Toulouse 1.19
Lyon 1.20
Passes
301
472
Toulouse 301
Lyon 472
Pass Accuracy
83%
87%
Toulouse 83%
Lyon 87%
Corners
7
8
Toulouse 7
Lyon 8
Fouls
20
8
Toulouse 20
Lyon 8
Yellow Cards
6
2
Toulouse 6
Lyon 2
Red Cards
1
0
Toulouse 1
Lyon 0

Match Events

10' D. Methalie (Y. Gboho)
26' 🟨 A. Donnum
44' 🟨 D. Methalie
45'+2 🟨 A. Vossah
HT
46' 🟨 M. McKenzie
Endrick 🟨 57'
58' 🟨 C. Cresswell
60' 🔄 D. Methalie W. Kamanzi
61' 🔄 A. Vossah P. Demba
61' 🔄 J. Russell-Rowe Emersonn
K. Merah P. Sulc 🔄 67'
R. Yaremchuk 🟨 70'
C. Tolisso (Endrick) 71'
78' W. Kamanzi (S. Hidalgo)
79' 🟨 A. Donnum
79' 🟥 A. Donnum
82' 🔄 S. Hidalgo D. Sidibe
T. Morton N. Nartey 🔄 83'
R. Yaremchuk E. Nuamah 🔄 83'
A. Maitland-Niles M. Fofana 🔄 89'
90'+1 🔄 Y. Gboho S. Koumbassa
FT

Player Cards

Our take on every player in this match

Toulouse

Goalkeepers
Guillaume Restes
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
97
Total Mins
Started
Entry
Defenders
Mark McKenzie
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
97
Total Mins
Started
Entry
Charlie Cresswell
WALL
WALL
0
Dribbled Past
0
Dribbled Past
3
Tackles
55%
Duel Win %
Rasmus Nicolaisen
SHIELD
SHIELD
3
Blocks
3
Blocks
1
Interceptions
2
Tackles
Midfielders
Aron Dønnum
FRIENDLY FIRE
FRIENDLY FIRE
Red Card
Mistake
Red Card
Mistake
5
Fouls
6.2
Rating
Alexis Vossah
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
61
Total Mins
61
Entry
Cristian Cásseres Jr.
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
97
Total Mins
Started
Entry
Dayann Methalie
SNIPER
SNIPER
100%
Conversion
100%
Conversion
1
Goals
1
Shots
Forwards
Santiago Hidalgo
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
7.2
Rating
Yann Gboho
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
1
Assists
30%
Pass Acc
Jacen Russell Rowe
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
61
Total Mins
61
Entry
BENCH
Kjetil Haug
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Djibril Sidibé
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry
Seny Koumbassa
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
6
Total Mins
Started
Entry
Waren Kamanzi
CLOSER
CLOSER
1
Late Goals
1
Late Goals
0
Late Assists
75
Minute
Pape Diop
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
36
Total Mins
Started
Entry
Abu Francis
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Emersonn
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
36
Total Mins
Started
Entry
Julian Vignolo
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ilyas Azizi
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Lyon

Goalkeepers
Dominik Greif
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
97
Total Mins
Started
Entry
Defenders
Ainsley Maitland-Niles
WALL
WALL
0
Dribbled Past
0
Dribbled Past
3
Tackles
86%
Duel Win %
Clinton Mata
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
97
Total Mins
Started
Entry
Moussa Niakhaté
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
13
Duels Won
0
Pens Won
Abner Vinícius
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
0
Assists
52%
Pass Acc
Midfielders
Tyler Morton
LATE SHIFT
LATE SHIFT
7
Late Mins
7
Late Mins
83
Total Mins
83
Entry
Corentin Tolisso
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
Endrick
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.3
Rating
Khalis Merah
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
67
Total Mins
67
Entry
Afonso Moreira
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
0
Assists
35%
Pass Acc
Forwards
Roman Yaremchuk
LATE SHIFT
LATE SHIFT
7
Late Mins
7
Late Mins
83
Total Mins
83
Entry
BENCH
Rémy Descamps
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Hans Hateboer
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Nicolás Tagliafico
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ruben Kluivert
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Noah Nartey
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
14
Total Mins
Started
Entry
Mathys de Carvalho
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Pavel Šulc
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
Malick Fofana
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
8
Total Mins
Started
Entry
Ernest Nuamah
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
14
Total Mins
Started
Entry

Head to Head

Date Home Score Away Competition Venue
10/05/2025 Lyon 1 - 2 Toulouse Ligue 1 Parc Olympique Lyonnais
01/18/2025 Lyon 0 - 0 Toulouse Ligue 1 Groupama Stadium
09/29/2024 Toulouse 1 - 2 Lyon Ligue 1 Stadium de Toulouse
03/15/2024 Toulouse 2 - 3 Lyon Ligue 1 Stadium de Toulouse
12/10/2023 Lyon 3 - 0 Toulouse Ligue 1 Groupama Stadium
04/14/2023 Toulouse 1 - 2 Lyon Ligue 1 Stadium de Toulouse
10/07/2022 Lyon 1 - 1 Toulouse Ligue 1 Groupama Stadium
01/26/2020 Lyon 3 - 0 Toulouse Ligue 1 Groupama Stadium
12/18/2019 Lyon 4 - 1 Toulouse Coupe de la Ligue Groupama Stadium
11/02/2019 Toulouse 2 - 3 Lyon Ligue 1 Stadium de Toulouse
10/05/2025
1 - 2
Ligue 1 Parc Olympique Lyonnais
01/18/2025
0 - 0
Ligue 1 Groupama Stadium
09/29/2024
1 - 2
Ligue 1 Stadium de Toulouse
03/15/2024
2 - 3
Ligue 1 Stadium de Toulouse
12/10/2023
3 - 0
Ligue 1 Groupama Stadium
04/14/2023
1 - 2
Ligue 1 Stadium de Toulouse
10/07/2022
1 - 1
Ligue 1 Groupama Stadium
01/26/2020
3 - 0
Ligue 1 Groupama Stadium
12/18/2019
4 - 1
Coupe de la Ligue Groupama Stadium
11/02/2019
2 - 3
Ligue 1 Stadium de Toulouse
Toulouse Win
Lyon Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Paris Saint Germain 33 76 73 27 +46 WLens 0 - 2 Paris Saint Germain (13-05-2026)WParis Saint Germain 1 - 0 Stade Brestois 29 (10-05-2026)DParis Saint Germain 2 - 2 Lorient (02-05-2026)WAngers 0 - 3 Paris Saint Germain (25-04-2026)WParis Saint Germain 3 - 0 Nantes (22-04-2026)
2 Lens 33 67 62 35 +27 LLens 0 - 2 Paris Saint Germain (13-05-2026)WLens 1 - 0 Nantes (08-05-2026)DNice 1 - 1 Lens (02-05-2026)DStade Brestois 29 3 - 3 Lens (24-04-2026)WLens 3 - 2 Toulouse (17-04-2026)
3 Lille 33 61 52 35 +17 WMonaco 0 - 1 Lille (10-05-2026)DLille 1 - 1 Le Havre (03-05-2026)WParis FC 0 - 1 Lille (26-04-2026)DLille 0 - 0 Nice (18-04-2026)WToulouse 0 - 4 Lille (12-04-2026)
4 Lyon 33 60 53 36 +17 LToulouse 2 - 1 Lyon (10-05-2026)WLyon 4 - 2 Rennes (03-05-2026)WLyon 3 - 2 Auxerre (25-04-2026)WParis Saint Germain 1 - 2 Lyon (19-04-2026)WLyon 2 - 0 Lorient (12-04-2026)
5 Rennes 33 59 58 47 +11 WRennes 2 - 1 Paris FC (10-05-2026)LLyon 4 - 2 Rennes (03-05-2026)WRennes 2 - 1 Nantes (26-04-2026)WStrasbourg 0 - 3 Rennes (19-04-2026)WRennes 2 - 1 Angers (11-04-2026)
6 Marseille 33 56 60 44 +16 WLe Havre 0 - 1 Marseille (10-05-2026)LNantes 3 - 0 Marseille (02-05-2026)DMarseille 1 - 1 Nice (26-04-2026)LLorient 2 - 0 Marseille (18-04-2026)WMarseille 3 - 1 Metz (10-04-2026)
7 Monaco 33 54 56 49 +7 LMonaco 0 - 1 Lille (10-05-2026)WMetz 1 - 2 Monaco (02-05-2026)DToulouse 2 - 2 Monaco (25-04-2026)DMonaco 2 - 2 Auxerre (19-04-2026)LParis FC 4 - 1 Monaco (10-04-2026)
8 Strasbourg 33 50 53 43 +10 WStade Brestois 29 1 - 2 Strasbourg (13-05-2026)DAngers 1 - 1 Strasbourg (10-05-2026)LStrasbourg 1 - 2 Toulouse (03-05-2026)WLorient 2 - 3 Strasbourg (26-04-2026)LStrasbourg 0 - 3 Rennes (19-04-2026)
9 Lorient 33 45 48 49 -1 WMetz 0 - 4 Lorient (10-05-2026)DParis Saint Germain 2 - 2 Lorient (02-05-2026)LLorient 2 - 3 Strasbourg (26-04-2026)WLorient 2 - 0 Marseille (18-04-2026)LLyon 2 - 0 Lorient (12-04-2026)
10 Toulouse 33 44 47 46 +1 WToulouse 2 - 1 Lyon (10-05-2026)WStrasbourg 1 - 2 Toulouse (03-05-2026)DToulouse 2 - 2 Monaco (25-04-2026)LLens 3 - 2 Toulouse (17-04-2026)LToulouse 0 - 4 Lille (12-04-2026)
11 Paris FC 33 41 45 49 -4 LRennes 2 - 1 Paris FC (10-05-2026)WParis FC 4 - 0 Stade Brestois 29 (03-05-2026)LParis FC 0 - 1 Lille (26-04-2026)WMetz 1 - 3 Paris FC (19-04-2026)WParis FC 4 - 1 Monaco (10-04-2026)
12 Stade Brestois 29 33 38 42 54 -12 LStade Brestois 29 1 - 2 Strasbourg (13-05-2026)LParis Saint Germain 1 - 0 Stade Brestois 29 (10-05-2026)LParis FC 4 - 0 Stade Brestois 29 (03-05-2026)DStade Brestois 29 3 - 3 Lens (24-04-2026)DNantes 1 - 1 Stade Brestois 29 (19-04-2026)
13 Angers 33 35 28 47 -19 DAngers 1 - 1 Strasbourg (10-05-2026)LAuxerre 3 - 1 Angers (03-05-2026)LAngers 0 - 3 Paris Saint Germain (25-04-2026)DAngers 1 - 1 Le Havre (18-04-2026)LRennes 2 - 1 Angers (11-04-2026)
14 Le Havre 33 32 30 44 -14 LLe Havre 0 - 1 Marseille (10-05-2026)DLille 1 - 1 Le Havre (03-05-2026)DLe Havre 4 - 4 Metz (26-04-2026)DAngers 1 - 1 Le Havre (18-04-2026)DNice 1 - 1 Le Havre (12-04-2026)
15 Auxerre 33 31 32 44 -12 WAuxerre 2 - 1 Nice (10-05-2026)WAuxerre 3 - 1 Angers (03-05-2026)LLyon 3 - 2 Auxerre (25-04-2026)DMonaco 2 - 2 Auxerre (19-04-2026)DAuxerre 0 - 0 Nantes (11-04-2026)
16 Nice 33 31 37 60 -23 LAuxerre 2 - 1 Nice (10-05-2026)DNice 1 - 1 Lens (02-05-2026)DMarseille 1 - 1 Nice (26-04-2026)DLille 0 - 0 Nice (18-04-2026)DNice 1 - 1 Le Havre (12-04-2026)
17 Nantes 33 23 29 52 -23 LLens 1 - 0 Nantes (08-05-2026)WNantes 3 - 0 Marseille (02-05-2026)LRennes 2 - 1 Nantes (26-04-2026)LParis Saint Germain 3 - 0 Nantes (22-04-2026)DNantes 1 - 1 Stade Brestois 29 (19-04-2026)
18 Metz 33 16 32 76 -44 LMetz 0 - 4 Lorient (10-05-2026)LMetz 1 - 2 Monaco (02-05-2026)DLe Havre 4 - 4 Metz (26-04-2026)LMetz 1 - 3 Paris FC (19-04-2026)LMarseille 3 - 1 Metz (10-04-2026)
19 Rodez 2 4 3 2 +1 DSaint Etienne 0 - 0 (PEN 7-6) Rodez (15-05-2026)WRED Star FC 93 2 - 3 Rodez (12-05-2026)
20 Saint Etienne 1 1 0 0 0 DSaint Etienne 0 - 0 (PEN 7-6) Rodez (15-05-2026)
21 RED Star FC 93 1 0 2 3 -1 LRED Star FC 93 2 - 3 Rodez (12-05-2026)
20 Saint Etienne 1 pts
P: 1 GD: 0
21 RED Star FC 93 0 pts
P: 1 GD: -1