Ligue 1 Regular Season - 28

Metz 0 - 0 FT Nantes

Stade Saint-Symphorien

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

Futmetrix Verdict
54
FT
Sun, Apr 5
Français
Metz
0-0
Nantes
⚡ Intensity 40
⚖️ Balance 0
🏆 Stakes 100
🎲 Upset 10
A siege without a breakthrough.

VAR Heartbreak Caps Frustrating Relegation Scrap

Worth Watching Futmetrix Score: 54/100. A tense basement battle erupted into a one-sided siege, ultimately ending in a stalemate that severely damages both teams' survival hopes.

Basement Battle Nerves

At Stade Saint-Symphorien, the anxiety was palpable long before the first whistle. With both clubs languishing in the relegation zone, the massive Stakes of this six-pointer dictated a cautious, cagey opening phase. Metz and Nantes engaged in a physical midfield battle, prioritizing defensive solidity over attacking adventure. The early tempo was broken up by fouls and fragmented play, typical of two squads desperate to avoid a catastrophic defeat. Neither side could establish sustained rhythm, leaving the home crowd nervously waiting for a spark.

The Turning Point

Our take on this match hinges entirely on a moment of madness in the 39th minute. A straight red card for T. Tati instantly destroyed the tactical Balance of the contest. Reduced to ten men, the visitors were forced to completely abandon their attacking ambitions. Metz immediately seized control, with Jean-Philippe Gbamin orchestrating the midfield and Sadibou Sané shutting down any rare counter-attacks. The hosts dominated possession, holding the ball 66% of the time, effectively pinning their opponents deep inside their own penalty area as the first half drew to a close.

The Siege and the Savior

The second half transformed into a relentless bombardment, driving the Intensity through the roof. Metz unleashed a barrage of 19 total shots, generating an expected goals (xG) figure of 2.32. However, they found a brick wall in the form of Anthony Lopes, who produced five crucial saves to keep his side afloat. The drama peaked deep into stoppage time when G. Hein thought he had won it, only for VAR to disallow the 90th-minute goal for offside. Given Metz's struggles in front of goal all season, the low Upset Factor of this scoreless draw makes logical sense, even if it feels like a bitter defeat for the home side.

Key Questions

How did the red card for T. Tati impact the match?

The 39th-minute dismissal forced Nantes into a deep defensive block, handing Metz total control of possession and leading to a one-sided 19-shot attacking siege.

What does this mean for Metz's season?

Sitting 18th with just 15 points, failing to beat a 10-man relegation rival at home is a devastating blow to Metz's hopes of escaping the drop zone.

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
66%
34%
Metz 66%
Nantes 34%
Shots
19
6
Metz 19
Nantes 6
Shots on Target
5
2
Metz 5
Nantes 2
Expected Goals (xG)
2.32
0.46
Metz 2.32
Nantes 0.46
Passes
566
290
Metz 566
Nantes 290
Pass Accuracy
88%
78%
Metz 88%
Nantes 78%
Corners
6
3
Metz 6
Nantes 3
Fouls
14
10
Metz 14
Nantes 10
Yellow Cards
2
1
Metz 2
Nantes 1
Red Cards
0
1
Metz 0
Nantes 1

Match Events

38' 🟨 B. Sarr
T. Tati 🟥 39'
HT
I. Ganago D. Machado 🔄 46'
F. Centonze Ali Youssef 🔄 46'
F. Coquelin 🟨 63'
63' 🔄 M. Colin N. Mbala
63' 🔄 U. Mboula B. Munongo
72' 🟨 B. Munongo
M. Abline B. Guirassy 🔄 73'
80' 🔄 B. Sarr L. Michal
F. Coquelin I. Sissoko 🔄 84'
87' 🔄 J. Deminguet G. Abuashvili
M. Kaba K. Amian 🔄 90'+2
90'+5 G. Hein
FT

Player Cards

Our take on every player in this match

Metz

Goalkeepers
Pape Sy
PROVOCATEUR
PROVOCATEUR
1
Fouls Won
1
Fouls Won
1
Duels Won
0
Pens Won
Defenders
Koffi Kouao
WALL
WALL
0
Dribbled Past
0
Dribbled Past
4
Tackles
67%
Duel Win %
Sadibou Sané
WALL
WALL
0
Dribbled Past
0
Dribbled Past
5
Tackles
78%
Duel Win %
Urie-Michel Mboula
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
63
Total Mins
63
Entry
Maxime Colin
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
63
Total Mins
63
Entry
Midfielders
Jean-Philippe Gbamin
MAGNET
MAGNET
76
Activity
76
Activity
68
Passes
8
Duels
Jessy Deminguet
ENFORCER
ENFORCER
4
Tackles
4
Tackles
5
Duels Won
71%
Win %
Bouna Sarr
LATE SHIFT
LATE SHIFT
10
Late Mins
10
Late Mins
80
Total Mins
80
Entry
Gauthier Hein
ARCHITECT
ARCHITECT
4
Key Passes
4
Key Passes
0
Assists
53%
Pass Acc
Georgiy Tsitaishvili
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
96
Total Mins
Started
Entry
Forwards
Habib Diallo
STORMTROOPER
STORMTROOPER
3
Shots
3
Shots
0
Goals
0
On Target
BENCH
Jonathan Fischer
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Terry Yegbe
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Moustapha Diop
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Fodé Ballo-Touré
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Believe Munongo
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
33
Total Mins
Started
Entry
Nathan Mbala
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
33
Total Mins
Started
Entry
Lucas Michal
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
16
Total Mins
Started
Entry
Giorgi Kvilitaia
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Giorgi Abuashvili
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
9
Total Mins
Started
Entry

Nantes

Goalkeepers
Anthony Lopes
OCTOPUS
OCTOPUS
5
Saves
5
Saves
0
Conceded
100%
Save %
Defenders
Frédéric Guilbert
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
9
Duels Won
0
Pens Won
Chidozie Awaziem
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
96
Total Mins
Started
Entry
Tylel Tati
FRIENDLY FIRE
FRIENDLY FIRE
Red Card
Mistake
Red Card
Mistake
1
Fouls
5.3
Rating
Nicolas Cozza
ARCHITECT
ARCHITECT
2
Key Passes
2
Key Passes
0
Assists
12%
Pass Acc
Midfielders
Francis Coquelin
LATE SHIFT
LATE SHIFT
6
Late Mins
6
Late Mins
84
Total Mins
84
Entry
Fabien Centonze
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
45
Total Mins
46
Entry
Mohamed Kaba
👻 Invisible Nothing to note
Johann Lepenant
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
96
Total Mins
Started
Entry
Matthis Abline
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
73
Total Mins
73
Entry
Forwards
Ignatius Ganago
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
45
Total Mins
46
Entry
BENCH
Patrik Carlgren
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Ali Youssef
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
2
Duels Won
0
Pens Won
Deiver Machado
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
51
Total Mins
Started
Entry
Kelvin Amian
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
4
Total Mins
Started
Entry
Ibrahima Sissoko
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
12
Total Mins
Started
Entry
Rémy Cabella
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Bahereba Guirassy
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
23
Total Mins
Started
Entry
Mostafa Mohamed
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Youssef El Arabi
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Head to Head

Date Home Score Away Competition Venue
11/02/2025 Nantes 0 - 2 Metz Ligue 1 Stade de la Beaujoire
03/03/2024 Nantes 0 - 2 Metz Ligue 1 Stade de la Beaujoire - Louis Fonteneau
11/12/2023 Metz 3 - 1 Nantes Ligue 1 Stade Saint-Symphorien
02/27/2022 Metz 0 - 0 Nantes Ligue 1 Stade Saint-Symphorien
08/15/2021 Nantes 2 - 0 Metz Ligue 1 Stade de la Beaujoire - Louis Fonteneau
01/24/2021 Metz 2 - 0 Nantes Ligue 1 Stade Saint-Symphorien
11/02/2025
0 - 2
Ligue 1 Stade de la Beaujoire
03/03/2024
0 - 2
Ligue 1 Stade de la Beaujoire - Louis Fonteneau
11/12/2023
3 - 1
Ligue 1 Stade Saint-Symphorien
02/27/2022
0 - 0
Ligue 1 Stade Saint-Symphorien
08/15/2021
2 - 0
Ligue 1 Stade de la Beaujoire - Louis Fonteneau
01/24/2021
2 - 0
Ligue 1 Stade Saint-Symphorien
Metz Win
Nantes Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Paris Saint Germain 27 63 61 23 +38 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)WLe Havre 0 - 1 Paris Saint Germain (28-02-2026)WParis Saint Germain 3 - 0 Metz (21-02-2026)
2 Lens 28 59 54 27 +27 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)DStrasbourg 1 - 1 Lens (27-02-2026)
3 Lille 28 50 45 34 +11 WLille 3 - 0 Lens (04-04-2026)WMarseille 1 - 2 Lille (22-03-2026)WRennes 1 - 2 Lille (15-03-2026)DLille 1 - 1 Lorient (08-03-2026)WLille 1 - 0 Nantes (01-03-2026)
4 Marseille 28 49 55 37 +18 LMonaco 2 - 1 Marseille (05-04-2026)LMarseille 1 - 2 Lille (22-03-2026)WMarseille 1 - 0 Auxerre (13-03-2026)WToulouse 0 - 1 Marseille (07-03-2026)WMarseille 3 - 2 Lyon (01-03-2026)
5 Monaco 28 49 49 39 +10 WMonaco 2 - 1 Marseille (05-04-2026)WLyon 1 - 2 Monaco (22-03-2026)WMonaco 2 - 0 Stade Brestois 29 (14-03-2026)WParis Saint Germain 1 - 3 Monaco (06-03-2026)WMonaco 2 - 0 Angers (28-02-2026)
6 Lyon 28 48 41 29 +12 DAngers 0 - 0 Lyon (05-04-2026)LLyon 1 - 2 Monaco (22-03-2026)DLe Havre 0 - 0 Lyon (15-03-2026)DLyon 1 - 1 Paris FC (08-03-2026)LMarseille 3 - 2 Lyon (01-03-2026)
7 Rennes 28 47 47 40 +7 WStade Brestois 29 3 - 4 Rennes (04-04-2026)DRennes 0 - 0 Metz (22-03-2026)LRennes 1 - 2 Lille (15-03-2026)WNice 0 - 4 Rennes (08-03-2026)WRennes 1 - 0 Toulouse (28-02-2026)
8 Strasbourg 28 43 46 34 +12 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)DStrasbourg 1 - 1 Lens (27-02-2026)
9 Lorient 28 38 38 42 -4 DLorient 1 - 1 Paris FC (05-04-2026)LToulouse 1 - 0 Lorient (21-03-2026)WLorient 2 - 1 Lens (14-03-2026)DLille 1 - 1 Lorient (08-03-2026)DLorient 2 - 2 Auxerre (01-03-2026)
10 Toulouse 28 37 39 35 +4 LParis Saint Germain 3 - 1 Toulouse (03-04-2026)WToulouse 1 - 0 Lorient (21-03-2026)WMetz 3 - 4 Toulouse (15-03-2026)LToulouse 0 - 1 Marseille (07-03-2026)LRennes 1 - 0 Toulouse (28-02-2026)
11 Stade Brestois 29 28 36 37 43 -6 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)WMetz 0 - 1 Stade Brestois 29 (01-03-2026)
12 Angers 28 33 24 37 -13 DAngers 0 - 0 Lyon (05-04-2026)LLens 5 - 1 Angers (20-03-2026)LAngers 0 - 2 Nice (14-03-2026)WNantes 0 - 1 Angers (07-03-2026)LMonaco 2 - 0 Angers (28-02-2026)
13 Paris FC 28 32 33 44 -11 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)DLyon 1 - 1 Paris FC (08-03-2026)WParis FC 1 - 0 Nice (01-03-2026)
14 Le Havre 28 28 23 36 -13 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)LStade Brestois 29 2 - 0 Le Havre (08-03-2026)LLe Havre 0 - 1 Paris Saint Germain (28-02-2026)
15 Nice 28 27 33 55 -22 LStrasbourg 3 - 1 Nice (04-04-2026)LNice 0 - 4 Paris Saint Germain (21-03-2026)WAngers 0 - 2 Nice (14-03-2026)LNice 0 - 4 Rennes (08-03-2026)LParis FC 1 - 0 Nice (01-03-2026)
16 Auxerre 28 23 23 37 -14 DLe Havre 1 - 1 Auxerre (05-04-2026)WAuxerre 3 - 0 Stade Brestois 29 (21-03-2026)LMarseille 1 - 0 Auxerre (13-03-2026)DAuxerre 0 - 0 Strasbourg (07-03-2026)DLorient 2 - 2 Auxerre (01-03-2026)
17 Nantes 27 18 24 45 -21 DMetz 0 - 0 Nantes (05-04-2026)LNantes 2 - 3 Strasbourg (22-03-2026)LNantes 0 - 1 Angers (07-03-2026)LLille 1 - 0 Nantes (01-03-2026)WNantes 2 - 0 Le Havre (22-02-2026)
18 Metz 28 15 25 60 -35 DMetz 0 - 0 Nantes (05-04-2026)DRennes 0 - 0 Metz (22-03-2026)LMetz 3 - 4 Toulouse (15-03-2026)LLens 3 - 0 Metz (08-03-2026)LMetz 0 - 1 Stade Brestois 29 (01-03-2026)