France

Ligue 1 2022/23 final table, results and top scorers

The 2022/23 season as it ended: the final table, every result by month and the player boards. History only, never a prediction.

Final table

Final table
#TeamPWDLGoalsGDPts
1Paris Saint-Germain38274789:40+4985
2Lens38259468:29+3984
3Marseille38227967:40+2773
4Rennes382151269:39+3068
5Lille381910965:44+2167
6Monaco381981170:58+1265
7Lyon381881265:47+1862
8Clermont381781345:49−459
9Nice3815131048:37+1158
10Lorient3815101352:53−155
11Reims3812151145:45051
12Montpellier381551865:62+350
13Toulouse381391651:57−648
14Brest3811111644:54−1044
15Strasbourg389131651:59−840
16Nantes387151637:55−1836
17Auxerre388111935:63−2835
18Ajaccio38752623:74−5126
19Troyes384122245:81−3624
20Angers38462833:81−4818

League rounds only, 90 minutes: 3 points a win, then goal difference and goals scored.

Player boards

Top scorers

Player boards · Top scorers
#PlayerGoals
1Kylian Mbappé
Paris Saint-Germain
29
2Alexandre Lacazette
Lyon
27
3Jonathan David
Lille
24

Penalties scored

Player boards · Penalties scored
#PlayerGoals
1Jonathan David
Lille
10
2Alexandre Lacazette
Lyon
6
3Folarin Balogun
Reims
6
4Teji Savanier
Montpellier
6

Hat-tricks

Player boards · Hat-tricks
#PlayerHat-tricks
1Loïs Openda
Lens
2
2Wissam Ben Yedder
Monaco
2
3Alexandre Lacazette
Lyon
1
4Amine Gouiri
Rennes
1
5Florian Sotoca
Lens
1
6Folarin Balogun
Reims
1
7Jonathan David
Lille
1
8Kylian Mbappé
Paris Saint-Germain
1
9Sepe Elye Wahi
Montpellier
1

Yellow cards

Player boards · Yellow cards
#PlayerYellow
1Benjamin André
Lille
12
2Alidu Seidu
Clermont
10
3Marco Verratti
Paris Saint-Germain
10
4Maximiliano Caufriez
Clermont
10
5Mounaim El Idrissy
Ajaccio
10
6Oumar Gonzalez
Ajaccio
10
7Pierre Lees Melou
Brest
10

The season's records

Biggest win: Brest 0–7 Montpellier (28 Aug 2022)

Highest-scoring game: Lyon 5–4 Montpellier (7 May 2023)

All results

June 2023 · 10 matches
All results · June 2023
DateMatchScore
3 JunAjaccio – Marseille1–0
3 JunAuxerre – Lens1–3
3 JunBrest – Rennes1–2
3 JunLorient – Strasbourg2–1
3 JunMonaco – Toulouse1–2
3 JunNantes – Angers1–0
3 JunNice – Lyon3–1
3 JunParis Saint-Germain – Clermont2–3
3 JunReims – Montpellier1–3
3 JunTroyes – Lille1–1
May 2023 · 42 matches
All results · May 2023
DateMatchScore
2 MayToulouse – Lens0–1
3 MayBrest – Nantes2–0
6 MayLens – Marseille2–1
6 MayNice – Rennes2–1
6 MayReims – Lille1–0
7 MayAjaccio – Toulouse0–0
7 MayAngers – Monaco1–2
7 MayAuxerre – Clermont1–1
7 MayLorient – Brest2–1
7 MayLyon – Montpellier5–4
7 MayNantes – Strasbourg0–2
7 MayTroyes – Paris Saint-Germain1–3
12 MayLens – Reims2–1
13 MayParis Saint-Germain – Ajaccio5–0
13 MayStrasbourg – Nice2–0
14 MayBrest – Auxerre1–0
14 MayClermont – Lyon2–1
14 MayMarseille – Angers3–1
14 MayMonaco – Lille0–0
14 MayMontpellier – Lorient1–1
14 MayRennes – Troyes4–0
14 MayToulouse – Nantes0–0
19 MayLyon – Monaco3–1
20 MayLille – Marseille2–1
20 MayNantes – Montpellier0–3
21 MayAjaccio – Rennes0–5
21 MayAuxerre – Paris Saint-Germain1–2
21 MayBrest – Clermont2–1
21 MayLorient – Lens1–3
21 MayNice – Toulouse0–0
21 MayReims – Angers2–2
21 MayTroyes – Strasbourg1–1
27 MayAngers – Troyes2–1
27 MayClermont – Lorient2–0
27 MayLens – Ajaccio3–0
27 MayLille – Nantes2–1
27 MayLyon – Reims3–0
27 MayMarseille – Brest1–2
27 MayMontpellier – Nice2–3
27 MayRennes – Monaco2–0
27 MayStrasbourg – Paris Saint-Germain1–1
27 MayToulouse – Auxerre1–1
April 2023 · 47 matches
All results · April 2023
DateMatchScore
1 AprAuxerre – Troyes1–0
1 AprRennes – Lens0–1
2 AprAngers – Nice1–1
2 AprBrest – Toulouse3–1
2 AprClermont – Ajaccio2–1
2 AprLille – Lorient3–1
2 AprMonaco – Strasbourg4–3
2 AprNantes – Reims0–3
2 AprParis Saint-Germain – Lyon0–1
7 AprLens – Strasbourg2–1
8 AprAngers – Lille1–0
8 AprNice – Paris Saint-Germain0–2
9 AprAjaccio – Auxerre0–3
9 AprLorient – Marseille0–0
9 AprLyon – Rennes3–1
9 AprMontpellier – Toulouse1–2
9 AprNantes – Monaco2–2
9 AprReims – Brest1–1
9 AprTroyes – Clermont0–2
14 AprToulouse – Lyon1–2
15 AprParis Saint-Germain – Lens3–1
15 AprRennes – Reims3–0
16 AprAuxerre – Nantes2–1
16 AprBrest – Nice1–0
16 AprClermont – Angers2–1
16 AprLille – Montpellier2–1
16 AprMarseille – Troyes3–1
16 AprMonaco – Lorient3–1
16 AprStrasbourg – Ajaccio3–1
21 AprAngers – Paris Saint-Germain1–2
22 AprAuxerre – Lille1–1
22 AprLens – Monaco3–0
23 AprAjaccio – Brest0–0
23 AprLorient – Toulouse0–1
23 AprLyon – Marseille1–2
23 AprMontpellier – Rennes1–0
23 AprNantes – Troyes2–2
23 AprNice – Clermont1–2
23 AprReims – Strasbourg0–2
28 AprStrasbourg – Lyon1–2
29 AprLille – Ajaccio3–0
30 AprClermont – Reims1–0
30 AprMarseille – Auxerre2–1
30 AprMonaco – Montpellier0–4
30 AprParis Saint-Germain – Lorient1–3
30 AprRennes – Angers4–2
30 AprTroyes – Nice0–1
March 2023 · 31 matches
All results · March 2023
DateMatchScore
3 MarNice – Auxerre1–1
4 MarLens – Lille1–1
4 MarParis Saint-Germain – Nantes4–2
5 MarLyon – Lorient0–0
5 MarMontpellier – Angers5–0
5 MarReims – Ajaccio1–0
5 MarRennes – Marseille0–1
5 MarStrasbourg – Brest0–1
5 MarToulouse – Clermont0–1
5 MarTroyes – Monaco2–2
10 MarLille – Lyon3–3
11 MarAuxerre – Rennes0–0
11 MarBrest – Paris Saint-Germain1–2
12 MarAjaccio – Montpellier0–1
12 MarAngers – Toulouse0–2
12 MarClermont – Lens0–4
12 MarLorient – Troyes2–0
12 MarMarseille – Strasbourg2–2
12 MarMonaco – Reims0–1
12 MarNantes – Nice2–2
17 MarLyon – Nantes1–1
18 MarLens – Angers3–0
18 MarToulouse – Lille0–2
19 MarAjaccio – Monaco0–2
19 MarMontpellier – Clermont2–1
19 MarNice – Lorient1–1
19 MarParis Saint-Germain – Rennes0–2
19 MarReims – Marseille1–2
19 MarStrasbourg – Auxerre2–0
19 MarTroyes – Brest2–2
31 MarMarseille – Montpellier1–1
February 2023 · 50 matches
All results · February 2023
DateMatchScore
1 FebAngers – Ajaccio1–2
1 FebLens – Nice0–1
1 FebLille – Clermont0–0
1 FebLyon – Brest0–0
1 FebMonaco – Auxerre3–2
1 FebMontpellier – Paris Saint-Germain1–3
1 FebNantes – Marseille0–2
1 FebReims – Lorient4–2
1 FebRennes – Strasbourg3–0
1 FebToulouse – Troyes4–1
4 FebParis Saint-Germain – Toulouse2–1
4 FebRennes – Lille1–3
4 FebTroyes – Lyon1–3
5 FebAjaccio – Nantes0–2
5 FebAuxerre – Reims0–0
5 FebBrest – Lens1–1
5 FebClermont – Monaco0–2
5 FebLorient – Angers0–0
5 FebMarseille – Nice1–3
5 FebStrasbourg – Montpellier2–0
10 FebNice – Ajaccio3–0
11 FebClermont – Marseille0–2
11 FebMonaco – Paris Saint-Germain3–1
12 FebAngers – Auxerre1–1
12 FebLille – Strasbourg2–0
12 FebLyon – Lens2–1
12 FebMontpellier – Brest3–0
12 FebNantes – Lorient1–0
12 FebReims – Troyes4–0
12 FebToulouse – Rennes3–1
17 FebAuxerre – Lyon2–1
18 FebNice – Reims0–0
18 FebStrasbourg – Angers2–1
19 FebBrest – Monaco1–2
19 FebLens – Nantes3–1
19 FebLorient – Ajaccio3–0
19 FebParis Saint-Germain – Lille4–3
19 FebRennes – Clermont2–0
19 FebToulouse – Marseille2–3
19 FebTroyes – Montpellier0–1
24 FebLille – Brest2–1
25 FebAngers – Lyon1–3
25 FebMontpellier – Lens1–1
26 FebAjaccio – Troyes2–1
26 FebClermont – Strasbourg1–1
26 FebLorient – Auxerre0–1
26 FebMarseille – Paris Saint-Germain0–3
26 FebMonaco – Nice0–3
26 FebNantes – Rennes0–1
26 FebReims – Toulouse3–0
January 2023 · 40 matches
All results · January 2023
DateMatchScore
1 JanAngers – Lorient1–2
1 JanLens – Paris Saint-Germain3–1
1 JanLyon – Clermont0–1
1 JanMonaco – Brest1–0
1 JanNantes – Auxerre1–0
1 JanToulouse – Ajaccio2–0
2 JanLille – Reims1–1
2 JanMontpellier – Marseille1–2
2 JanRennes – Nice2–1
2 JanStrasbourg – Troyes2–3
11 JanAjaccio – Reims0–1
11 JanAuxerre – Toulouse0–5
11 JanBrest – Lille0–0
11 JanClermont – Rennes2–1
11 JanLorient – Monaco2–2
11 JanNantes – Lyon0–0
11 JanNice – Montpellier6–1
11 JanParis Saint-Germain – Angers2–0
11 JanStrasbourg – Lens2–2
11 JanTroyes – Marseille0–2
14 JanLens – Auxerre1–0
14 JanLyon – Strasbourg1–2
14 JanMarseille – Lorient3–1
15 JanAngers – Clermont1–2
15 JanLille – Troyes5–1
15 JanMonaco – Ajaccio7–1
15 JanMontpellier – Nantes0–3
15 JanReims – Nice0–0
15 JanRennes – Paris Saint-Germain1–0
15 JanToulouse – Brest1–1
27 JanLorient – Rennes2–1
28 JanMarseille – Monaco1–1
28 JanTroyes – Lens1–1
29 JanAjaccio – Lyon0–2
29 JanAuxerre – Montpellier0–2
29 JanBrest – Angers4–0
29 JanClermont – Nantes0–0
29 JanNice – Lille1–0
29 JanParis Saint-Germain – Reims1–1
29 JanStrasbourg – Toulouse1–2
December 2022 · 10 matches
All results · December 2022
DateMatchScore
28 DecAjaccio – Angers1–0
28 DecAuxerre – Monaco2–3
28 DecBrest – Lyon2–4
28 DecClermont – Lille0–2
28 DecParis Saint-Germain – Strasbourg2–1
28 DecTroyes – Nantes0–0
29 DecLorient – Montpellier0–2
29 DecMarseille – Toulouse6–1
29 DecNice – Lens0–0
29 DecReims – Rennes3–1
November 2022 · 20 matches
All results · November 2022
DateMatchScore
4 NovTroyes – Auxerre1–1
5 NovAjaccio – Strasbourg4–2
5 NovAngers – Lens1–2
6 NovClermont – Montpellier1–1
6 NovLille – Rennes1–1
6 NovLorient – Paris Saint-Germain1–2
6 NovMarseille – Lyon1–0
6 NovNice – Brest1–0
6 NovReims – Nantes1–0
6 NovToulouse – Monaco0–2
11 NovLyon – Nice1–1
12 NovLens – Clermont2–1
12 NovRennes – Toulouse2–1
13 NovBrest – Troyes2–1
13 NovLille – Angers1–0
13 NovMonaco – Marseille2–3
13 NovMontpellier – Reims1–1
13 NovNantes – Ajaccio2–2
13 NovParis Saint-Germain – Auxerre5–0
13 NovStrasbourg – Lorient1–1
October 2022 · 49 matches
All results · October 2022
DateMatchScore
1 OctParis Saint-Germain – Nice2–1
1 OctStrasbourg – Rennes1–3
2 OctAjaccio – Clermont1–3
2 OctAuxerre – Brest1–1
2 OctLens – Lyon1–0
2 OctLorient – Lille2–1
2 OctMonaco – Nantes4–1
2 OctToulouse – Montpellier4–2
2 OctTroyes – Reims2–2
7 OctLyon – Toulouse1–1
8 OctMarseille – Ajaccio1–2
8 OctReims – Paris Saint-Germain0–0
9 OctAngers – Strasbourg2–3
9 OctBrest – Lorient1–2
9 OctClermont – Auxerre2–1
9 OctLille – Lens1–0
9 OctMontpellier – Monaco0–2
9 OctNice – Troyes3–2
9 OctRennes – Nantes3–0
14 OctStrasbourg – Lille0–3
15 OctLens – Montpellier1–0
15 OctLorient – Reims0–0
16 OctAuxerre – Nice1–1
16 OctMonaco – Clermont1–1
16 OctNantes – Brest4–1
16 OctParis Saint-Germain – Marseille1–0
16 OctRennes – Lyon3–2
16 OctToulouse – Angers3–2
16 OctTroyes – Ajaccio1–1
21 OctAjaccio – Paris Saint-Germain0–3
22 OctMarseille – Lens0–1
22 OctMontpellier – Lyon1–2
23 OctAngers – Rennes1–2
23 OctClermont – Brest1–3
23 OctLille – Monaco4–3
23 OctNice – Nantes1–1
23 OctReims – Auxerre2–1
23 OctToulouse – Strasbourg2–2
23 OctTroyes – Lorient2–2
28 OctLens – Toulouse3–0
29 OctParis Saint-Germain – Troyes4–3
29 OctStrasbourg – Marseille2–2
30 OctAuxerre – Ajaccio1–0
30 OctBrest – Reims0–0
30 OctLorient – Nice1–2
30 OctLyon – Lille1–0
30 OctMonaco – Angers2–0
30 OctNantes – Clermont1–1
30 OctRennes – Montpellier3–0
September 2022 · 32 matches
All results · September 2022
DateMatchScore
3 SepAuxerre – Marseille0–2
3 SepLyon – Angers5–0
3 SepNantes – Paris Saint-Germain0–3
4 SepAjaccio – Lorient0–1
4 SepBrest – Strasbourg1–1
4 SepClermont – Toulouse2–0
4 SepMontpellier – Lille1–3
4 SepNice – Monaco0–1
4 SepReims – Lens1–1
4 SepTroyes – Rennes1–1
7 SepLorient – Lyon3–1
9 SepLens – Troyes1–0
10 SepMarseille – Lille2–1
10 SepParis Saint-Germain – Brest1–0
11 SepAjaccio – Nice0–1
11 SepAngers – Montpellier2–1
11 SepLorient – Nantes3–2
11 SepMonaco – Lyon2–1
11 SepRennes – Auxerre5–0
11 SepStrasbourg – Clermont0–0
11 SepToulouse – Reims1–0
16 SepAuxerre – Lorient1–3
17 SepLille – Toulouse2–1
17 SepMontpellier – Strasbourg2–1
18 SepBrest – Ajaccio0–1
18 SepClermont – Troyes1–3
18 SepLyon – Paris Saint-Germain0–1
18 SepMarseille – Rennes1–1
18 SepNantes – Lens0–0
18 SepNice – Angers0–1
18 SepReims – Monaco0–3
30 SepAngers – Marseille0–3
August 2022 · 49 matches
All results · August 2022
DateMatchScore
5 AugLyon – Ajaccio2–1
6 AugClermont – Paris Saint-Germain0–5
6 AugStrasbourg – Monaco1–2
7 AugAngers – Nantes0–0
7 AugLens – Brest3–2
7 AugLille – Auxerre4–1
7 AugMarseille – Reims4–1
7 AugMontpellier – Troyes3–2
7 AugRennes – Lorient0–1
7 AugToulouse – Nice1–1
12 AugNantes – Lille1–1
13 AugMonaco – Rennes1–1
13 AugParis Saint-Germain – Montpellier5–2
14 AugAjaccio – Lens0–0
14 AugAuxerre – Angers2–2
14 AugBrest – Marseille1–1
14 AugNice – Strasbourg1–1
14 AugReims – Clermont2–4
14 AugTroyes – Toulouse0–3
19 AugLyon – Troyes4–1
20 AugMarseille – Nantes2–1
20 AugMonaco – Lens1–4
21 AugAngers – Brest1–3
21 AugClermont – Nice1–0
21 AugLille – Paris Saint-Germain1–7
21 AugMontpellier – Auxerre1–2
21 AugRennes – Ajaccio2–1
21 AugStrasbourg – Reims1–1
21 AugToulouse – Lorient2–2
26 AugAjaccio – Lille1–3
27 AugAuxerre – Strasbourg1–0
27 AugLens – Rennes2–1
28 AugBrest – Montpellier0–7
28 AugLorient – Clermont2–1
28 AugNantes – Toulouse3–1
28 AugNice – Marseille0–3
28 AugParis Saint-Germain – Monaco1–1
28 AugReims – Lyon1–1
28 AugTroyes – Angers3–1
31 AugAngers – Reims2–4
31 AugLens – Lorient5–2
31 AugLille – Nice1–2
31 AugLyon – Auxerre2–1
31 AugMarseille – Clermont1–0
31 AugMonaco – Troyes2–4
31 AugMontpellier – Ajaccio2–0
31 AugRennes – Brest3–1
31 AugStrasbourg – Nantes1–1
31 AugToulouse – Paris Saint-Germain0–3

League rounds, 90 minutes, by month.

Referees

Referees
RefereeMatches
Eric Wattellier25
Jeremy Stinat24
Willy Delajod24
Benoît Millot23
B. Dechepy22
Ruddy Buquet22
Benoît Bastien21
Clement Turpin21
Thomas Léonard21
Jeremie Pignard20
Jérôme Brisard20
Stephanie Frappart20
François Letexier19
Marc Bollengier19
Pierre Gaillouste19
Florent Batta18
Mathieu Vernice16
H. Ben El Hadj15
Johan Hamel8

Matches per referee from the season's schedule; the table lists referees with at least 3 matches.

From our data: the season's league matches. History only, never a prediction.

The day's tips on Telegram

Every morning (about 10:00 Tallinn time) the day's card tips go to the free Telegram channel; on some days there are none, and we say so.