
Ligue 1 McDonald's Matchday 31


Ruiz (41')
Sanson (35')
Sanson (46')
Ndayishimiye (70')
Match report
Les Aiglons reign again at the Parc (1-3)
Just like last year, OGC Nice triumphed over Paris Saint-Germain at the Parc des Princes, thanks to a brace from Sanson, a goal from Ndayishimiye and a masterclass performance from Bułka.
What an incredible side this Le Gym team is! OGC Nice delivered a brilliant performance at the Parc des Princes, winning 3–1 against PSG and ending the reigning French champion's unbeaten run. Les Aiglons relied on a colossal Bułka and an outstanding Sanson tonight.
Though the Rouge et Noir were dominated in the first half, Sanson opened the scoring (0–1, 35'). Paris then responded with an equaliser from Fabian Ruiz (1–1, 41').
In the second half, Le Gym were ruthless. Sanson gave his side the lead again right after the break (1–2, 46'), before Ndayishimiye headed in a third (1–3, 70'). Despite constant pressure from Paris, Nice held strong to claim a fantastic 3–1 victory.
With this win, Le Gym temporarily climb to 4th place with 54 points, tied with Monaco (3rd) but with a worse goal difference. Les Aiglons are now just one point off second place ahead of the weekend’s remaining matches.
NICE STRIKE FIRST
For the trip to Paris, coach Franck Haise opted to start in a 3-5-2, changing just one player from the team that beat Angers. Morgan Sanson returned to the starting line-up in midfield. The rest of the Nice team was made up of Bułka, Abdelmonem, Ndayishimiye (captain), Bard, Clauss, Boudaoui, Rosario, Abdi, Bouanani and Laborde.
Les Parisiens quickly took the initiative, dominating in the Nice half and launching wave after wave of attacks. After a clearance from Bułka, Kvaratskhelia and then Dembélé tested the Nice goalkeeper (11'). Bułka came up big with a firm save to deny a Dembélé shot (25') and then tipped a Neves header over the bar (25').
The Polish keeper shone again as he denied Kvaratskhelia (28'). Nice remained well organised and focused in defence, repelling Paris’s advances, but struggled to mount any serious attack on the hosts' goal, apart from an Abdi shot that went over the bar after a Laborde pass (29').
Then came the shock. Just when they needed to, the Rouge et Noir struck. Bouanani delivered a pinpoint pass to Sanson, who calmly slotted the ball in with a low side-footed shot to open the scoring (0–1, 35'). But the joy was short-lived, as Ruiz levelled the score with a left-footed finish in the box after a pass from Dembélé (1–1, 41'). The teams went into half-time all square.
A CLINICAL NICE SIDE
Immediately after the restart, Nice retook the lead! Morgan Sanson, in fine form, netted his second of the night with a perfect volley from a Clauss cross (1–2, 46'). It was his sixth goal in a Nice shirt. Riding this momentum, Les Aiglons were more aggressive in attack while smartly managing their lead and holding off Paris’s attacking efforts.
But Les Parisiens kept pushing. Ndayishimiye saved Le Gym by clearing a dangerous ball from the box just before Doué could shoot. Hakimi followed up but saw his shot blocked by the Nice captain (56'). Shortly after, Bułka pulled off a stunning fingertip save to deny a Vitinha free kick (63') and frustrated Dembélé again minutes later (66').
Haise made his first substitutions in the 67th minute: Abdelmonem made way for Mendy and Sanson was replaced by Santamaria. These changes didn’t break Nice’s rhythm. Ndayishimiye then added a third with a glancing header from a well-placed Bouanani free kick — Bouanani’s second assist of the night (1–3, 70').
Bouanani was subbed off for Diop (75’) and Nice calmly managed their lead. Final changes came in the 86th minute with Laborde and Abdi being replaced by Guessand and Louchet. Despite late PSG pressure, Bułka stood firm, parrying everything that came his way — including a powerful shot from Ramos and another save from Vitinha in stoppage time (90+1'). His decisive saves ensured that the valiant visitors took all three points.
FOCUS ON REIMS
After this fantastic win in Paris, OGC Nice now turn to their focus to their next Ligue 1 fixture. Les Aiglons will host Reims in the opening match of Matchday 32 at the Allianz Riviera next Friday at 8:45pm.
Video highlights
Match sheet
April 25 2025 20:45
In Paris
Parc des Princes



- Donnarumma
- Hakimi
- Pacho
-
Nuno Mendes
-
Marquinhos
-
João Neves
-
Ruiz
- Vitinha
-
Doué
-
Dembélé
- Kvaratskhelia
- Bulka
-
Ndayishimiye
- Bard
-
Mohamed Abdelmonem
- Rosario
- Clauss
-
Abdi
- Boudaoui
-
Sanson
-
Bouanani
-
Laborde

Coach
Luis Enrique
Substitutions
-
59'
Barcola
Doué
-
59'
Zaïre-Emery
Marquinhos
-
68'
Beraldo
Marquinhos
-
68'
Ramos
Dembélé
-
78'
Mayulu
Ruiz
Unused Substitutes
Hernandez Kimpembe Kang-in Safonov

Coach
Franck Haise
Substitutions
-
67'
Mendy
Abdelmonem
-
67'
Santamaria
Sanson
-
75'
Diop
Bouanani
-
86'
Louchet
Abdi
-
86'
Guessand
Laborde
Unused Substitutes
Boga Cho Dupé Moffi
Referee
Willy
Delajod

Bookings
Yellow cards
Neves (45') Mendes (68') Zaïre-Emery (72')
Red cards
Bookings
Yellow cards
Red cards

Stats

Ball Control
Shots
Shots on target
Completed passes
Offsides
Fouls committed
Yellow cards
Red cards