Ligue 1 Regular Season - 31

Rennes 2 - 1 FT Nantes

Roazhon Park

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

Futmetrix Verdict
99
FT
Sun, Apr 26
Français
Rennes
2-1
Nantes
⚡ Intensity 85
⚖️ Balance 60
🏆 Stakes 78
🎲 Upset 0
A stunning late winner settles the derby.

Late Drama in Brittany: Rongier Breaks Nantes' Hearts

Must-Watch Futmetrix Score: 99/100. This regional derby delivered immense late tension, keeping the hosts' European dreams alive while pushing the visitors closer to the relegation trapdoor.

Setting the Derby Pace

Roazhon Park was roaring from the opening exchanges of this pivotal Derby de l'Ouest. The Stakes could not have been higher, with both sides desperate for points at opposite ends of the table. The hosts struck first blood when E. Lepaul confidently dispatched an eighth-minute penalty. However, rather than folding, the visitors responded with tremendous character. Despite Rennes dominating possession with 64% of the ball, Nantes carved open dangerous spaces on the counter. Their persistence and raw Intensity paid off just before the interval when N. Cozza provided a precise assist for I. Ganago, leveling the score and restoring Balance to a genuinely frantic contest.

The VAR Reprieve

The second half transformed into a remarkable end-to-end spectacle. The match became a true shootout, with a staggering 35 combined shots raining down on both goals. Rennes thought they had reclaimed the lead near the hour mark through Lepaul, but VAR intervened to rule the effort out for a tight offside. That marginal call gave Nantes renewed belief. Defying their lowly league position, the away side pushed forward relentlessly, accumulating a higher expected goals tally (2.01 to 1.59). The goalkeepers were forced into nine total saves as both teams threw caution to the wind in search of three massive points.

A Cruel Conclusion

Just as a spirited draw seemed inevitable, the script flipped in the dying moments. In the 90th minute, V. Rongier found the decisive breakthrough, dispatching a dramatic late winner that sent the home crowd into raptures. The sheer cruelty of the final whistle leaves Nantes stranded in 17th place, staring down a daunting nine-point gap to safety with only four games remaining. Conversely, the high Upset Factor was nullified, and Rennes cemented their grip on fifth place, taking a giant step toward securing UEFA Europa League football next season in the most dramatic fashion possible.

Key Questions

How dramatic was the late winner by Valentin Rongier?

Unbelievably dramatic. His 90th-minute strike completely flipped the script, turning a frustrating draw into a euphoric derby victory for the home supporters.

What does this mean for Rennes's season?

It’s massive. The three points solidify their hold on fifth place, keeping their UEFA Europa League qualification destiny firmly in their own hands.

Did the derby intensity affect the quality of play?

Not negatively. The fiery atmosphere actually produced an incredibly open match, generating 35 total shots, 13 on target, and end-to-end attacking football.

What is the Derby de l'Ouest?

The Derby de l'Ouest is the rivalry between Rennes and Nantes, a passionate regional rivalry with deep local significance.

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
64%
36%
Rennes 64%
Nantes 36%
Shots
14
21
Rennes 14
Nantes 21
Shots on Target
5
8
Rennes 5
Nantes 8
Expected Goals (xG)
1.59
2.01
Rennes 1.59
Nantes 2.01
Passes
461
251
Rennes 461
Nantes 251
Pass Accuracy
85%
72%
Rennes 85%
Nantes 72%
Corners
6
6
Rennes 6
Nantes 6
Fouls
15
15
Rennes 15
Nantes 15
Yellow Cards
3
2
Rennes 3
Nantes 2
Red Cards
0
0
Rennes 0
Nantes 0

Match Events

8' E. Lepaul
N. Cozza 🟨 38'
I. Ganago (N. Cozza) 40'
HT
D. Machado 🟨 50'
59' E. Lepaul
68' 🔄 A. Seidu M. Nagida
68' 🔄 L. Blas S. Szymanski
M. Kaba D. Tabibou 🔄 68'
L. Leroux B. Guirassy 🔄 68'
73' 🟨 A. Ait Boudlal
F. Guilbert M. Acapandie 🔄 77'
81' 🔄 B. Embolo Y. Zabiri
I. Ganago Mostafa Mohamed 🔄 87'
M. Abline Y. El Arabi 🔄 87'
88' 🟨 V. Rongier
90'+1 🔄 M. Tamari N. Mukiele
90'+2 V. Rongier
90'+6 🟨 S. Szymanski
FT

Player Cards

Our take on every player in this match

Rennes

Goalkeepers
Brice Samba
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
98
Total Mins
Started
Entry
Defenders
Alidu Seidu
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
5
Duels Won
0
Pens Won
Abdelhamid Ait Boudlal
WALL
WALL
0
Dribbled Past
0
Dribbled Past
2
Tackles
56%
Duel Win %
Lilian Brassier
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
5
Duels Won
0
Pens Won
Quentin Merlin
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
98
Total Mins
Started
Entry
Midfielders
Ludovic Blas
ARCHITECT
ARCHITECT
3
Key Passes
3
Key Passes
0
Assists
23%
Pass Acc
Valentin Rongier
CLUTCH HERO
CLUTCH HERO
90
Goal Time
90
Goal Time
Goal
Impact
8.2
Rating
Mahdi Camara
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
98
Total Mins
Started
Entry
Mousa Tamari
👻 Invisible Nothing to note
Forwards
Breel Embolo
PROVOCATEUR
PROVOCATEUR
4
Fouls Won
4
Fouls Won
6
Duels Won
0
Pens Won
Esteban Lepaul
FINISHER
FINISHER
1
Goals
1
Goals
3
Shots
7.2
Rating
BENCH
Ayoube Akabou
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Mathys Silistrie
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Anthony Rouault
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Mahamadou Nagida
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
Sebastian Szymański
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
Glen Kamara
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Djaoui Cissé
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Nordan Mukiele
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
7
Total Mins
Started
Entry
Yassir Zabiri
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
17
Total Mins
Started
Entry

Nantes

Goalkeepers
Anthony Lopes
FRIENDLY FIRE
FRIENDLY FIRE
Pen Given
Mistake
Pen Given
Mistake
1
Fouls
6.9
Rating
Defenders
Frederic Guilbert
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
4
Duels Won
0
Pens Won
Ali Youssef
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
98
Total Mins
Started
Entry
Nicolas Cozza
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
8
Rating
Deiver Machado
WALL
WALL
0
Dribbled Past
0
Dribbled Past
2
Tackles
60%
Duel Win %
Midfielders
Johann Lepenant
ARCHITECT
ARCHITECT
7
Key Passes
7
Key Passes
0
Assists
22%
Pass Acc
Ibrahima Sissoko
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
98
Total Mins
Started
Entry
Mohamed Kaba
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
68
Total Mins
68
Entry
Matthis Abline
STORMTROOPER
STORMTROOPER
2
Shots
2
Shots
0
Goals
1
On Target
Louis Leroux
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
68
Total Mins
68
Entry
Forwards
Ignatius Ganago
FINISHER
FINISHER
1
Goals
1
Goals
3
Shots
8
Rating
BENCH
Patrik Carlgren
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Mathieu Acapandié
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
21
Total Mins
Started
Entry
Chidozie Awaziem
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Dehmaine Tabibou
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
Bahmed Deuff
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
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
30
Total Mins
Started
Entry
Youssef El Arabi
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
11
Total Mins
Started
Entry
Mostafa Mohamed
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
11
Total Mins
Started
Entry

Head to Head

Date Home Score Away Competition Venue
09/20/2025 Nantes 2 - 2 Rennes Ligue 1 Stade de la Beaujoire
04/18/2025 Rennes 2 - 1 Nantes Ligue 1 Roazhon Park
12/08/2024 Nantes 1 - 0 Rennes Ligue 1 Stade de la Beaujoire - Louis Fonteneau
04/20/2024 Nantes 0 - 3 Rennes Ligue 1 Stade de la Beaujoire - Louis Fonteneau
10/01/2023 Rennes 3 - 1 Nantes Ligue 1 Roazhon Park
02/26/2023 Nantes 0 - 1 Rennes Ligue 1 Stade de la Beaujoire - Louis Fonteneau
10/09/2022 Rennes 3 - 0 Nantes Ligue 1 Roazhon Park
07/27/2022 Nantes 0 - 1 Rennes Friendlies Clubs Stade Léo Lagrange
05/11/2022 Nantes 2 - 1 Rennes Ligue 1 Stade de la Beaujoire - Louis Fonteneau
08/22/2021 Rennes 1 - 0 Nantes Ligue 1 Roazhon Park
09/20/2025
2 - 2
Ligue 1 Stade de la Beaujoire
04/18/2025
2 - 1
Ligue 1 Roazhon Park
12/08/2024
1 - 0
Ligue 1 Stade de la Beaujoire - Louis Fonteneau
04/20/2024
0 - 3
Ligue 1 Stade de la Beaujoire - Louis Fonteneau
10/01/2023
3 - 1
Ligue 1 Roazhon Park
02/26/2023
0 - 1
Ligue 1 Stade de la Beaujoire - Louis Fonteneau
10/09/2022
3 - 0
Ligue 1 Roazhon Park
07/27/2022
0 - 1
Friendlies Clubs Stade Léo Lagrange
05/11/2022
2 - 1
Ligue 1 Stade de la Beaujoire - Louis Fonteneau
08/22/2021
1 - 0
Ligue 1 Roazhon Park
Rennes Win
Nantes Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Paris Saint Germain 30 69 68 25 +43 WAngers 0 - 3 Paris Saint Germain (25-04-2026)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)
2 Lens 30 63 60 32 +28 DStade Brestois 29 3 - 3 Lens (24-04-2026)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)
3 Lille 31 57 50 34 +16 WParis FC 0 - 1 Lille (26-04-2026)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)
4 Lyon 31 57 48 32 +16 WLyon 3 - 2 Auxerre (25-04-2026)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)
5 Rennes 31 56 54 42 +12 WRennes 2 - 1 Nantes (26-04-2026)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)
6 Marseille 31 53 59 41 +18 DMarseille 1 - 1 Nice (26-04-2026)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)
7 Monaco 31 51 54 47 +7 DToulouse 2 - 2 Monaco (25-04-2026)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)
8 Strasbourg 30 46 49 39 +10 WLorient 2 - 3 Strasbourg (26-04-2026)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)
9 Lorient 31 41 42 47 -5 LLorient 2 - 3 Strasbourg (26-04-2026)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)
10 Toulouse 31 38 43 44 -1 DToulouse 2 - 2 Monaco (25-04-2026)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)
11 Stade Brestois 29 30 38 41 47 -6 DStade Brestois 29 3 - 3 Lens (24-04-2026)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)
12 Paris FC 31 38 40 47 -7 LParis FC 0 - 1 Lille (26-04-2026)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)
13 Angers 31 34 26 43 -17 LAngers 0 - 3 Paris Saint Germain (25-04-2026)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)
14 Le Havre 31 31 29 42 -13 DLe Havre 4 - 4 Metz (26-04-2026)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)
15 Nice 31 30 35 57 -22 DMarseille 1 - 1 Nice (26-04-2026)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)
16 Auxerre 31 25 27 42 -15 LLyon 3 - 2 Auxerre (25-04-2026)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)
17 Nantes 31 20 26 51 -25 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)DAuxerre 0 - 0 Nantes (11-04-2026)DMetz 0 - 0 Nantes (05-04-2026)
18 Metz 31 16 31 70 -39 DLe Havre 4 - 4 Metz (26-04-2026)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)