Paris FC stuns Rennes with stoppage-time winner in 4-3 thriller
With four penalties, a VAR-disallowed goal and a 96th-minute winner from Sinayoko, Paris FC edged Rennes 4-3 to cement second place in Ligue 1.

Four penalties, a goal wiped out by VAR, and a match that wasn't settled until the 96th minute. Paris FC beat Rennes 4-3 at the Stade Jean Bouin in a Ligue 1 clash that had everything except a quiet moment.
The hosts started strong and were already ahead by the 13th minute: Maxime Lopez finished with his right foot from the center of the box after an assist from Lassine Sinayoko to make it 1-0. Rennes responded from the penalty spot: Esteban Lepaul, who would end up being the absolute protagonist of the afternoon, converted a penalty in the 28th minute to make it 1-1.
The second half opened with another blow from Paris FC. In the 48th minute, just after the restart, Maxime Lopez struck again, this time from close range, to make it 2-1. A couple of minutes later, in the 50th minute, Rennes thought they had equalized through a Sebastian Szymanski goal, but VAR ruled it out and the score stayed the same.
The game opened up again in the 73rd minute: another penalty, and Lepaul converted his second spot kick of the afternoon to make it 2-2. Paris FC wasted no time hitting back: two minutes later, in the 75th minute, Sinayoko finished with his left foot from the center of the box to restore the home side's lead, 3-2. But Rennes leveled again from the penalty spot in the 87th minute, with Lepaul completing his third converted penalty of the match to make it 3-3.
With Lepaul forced off injured after the 90th minute (Rennes had no substitutions left), the final twist arrived: in stoppage time, in the 92nd minute, VAR awarded Paris FC a penalty for a foul by Valentin Rongier on Sinayoko. Sinayoko himself stepped up and didn't miss this time, putting away the decisive 4-3 in the 96th minute.
What the numbers say
Paris FC was more dominant in possession and generated more attacking volume, though Rennes didn't fall short on clear-cut chances.
| Stat | Paris FC | Rennes |
|---|---|---|
| Possession (%) | 52.7 | 47.3 |
| Shots | 19 | 12 |
| Shots on target | 9 | 7 |
| Big chances | 2 | 2 |
| Corners | 3 | 4 |
| Passes | 523 | 461 |
| Fouls committed | 13 | 16 |
According to our own estimate calculated from the match's shots, Rennes generated an xG of 3.309 compared to Paris FC's 2.976, a figure that reflects just how even, and how open, the contest was despite the home side taking all three points.
Our preview published ahead of the match gave Paris FC a 40% chance of winning, 28% for a draw and 32% for Rennes, with an expected total goals figure of just 2.78. Reality blew past that projection entirely: between the four penalties, the disallowed goal and the stoppage-time finish, the match ended with seven goals and a resolution nobody saw coming.
What it means for the table
The result carries weight in the standings. Paris FC came into the match level on points with Rennes, and the win moves them into second place with 14 points from 7 games played (4 wins, 2 draws, 1 loss), while Rennes drop to fifth with 13 points from the same number of matches (4 wins, 1 draw, 2 losses). The gap between the two sides before this meeting was just 1 point, and the battle for the top spots remains tight.
Between the penalties, the VAR disallowance and Sinayoko's 96th-minute winner, Jean Bouin lived through one of those afternoons that get decided on the final breath. Paris FC's attacking output backed up a deserved win, but Rennes, despite the defeat, showed they weren't far from taking something from the match.
TOT
COV
GET
RAY
PAR
TOR
BRA
GIL
CAL
NAC
RAF
MON
STE
DEB
COR
VIT
MUR
ORE
SAR
BAC
NOB
CCS
RIE
UNI
UNE
COP
OLP
LIB
ANT
XEL
NAC
MAL
MON
CAG
FEI
AHL
HIL
HAZ
SHA
FAI
SPV
VFF
FCM
JAJ
GRA
JUT
RJC
JPS
DOR
STJ
BRE
PFC
MUM
BJM
MTA
DAU
AUD
RFS
TUK
WPL
RAD
ORE
DEG
KFF
VRG
HIF
MAN
MUG
FKG
KEC
BUR
PEN