France

Ligue 1 2018/19 final table, results and top scorers

The 2018/19 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-Germain382945105:35+7091
2Lille38229768:33+3575
3Lyon38219870:47+2372
4Saint-Étienne381991059:41+1866
5Marseille381871360:52+861
6Montpellier381514953:42+1159
7Nice3815111230:35−556
8Reims381316939:42−355
9Nîmes381581557:58−153
10Rennes3813131255:52+352
11Strasbourg3811161158:48+1049
12Nantes381391648:48048
13Angers3810161244:49−546
14Bordeaux3810111734:42−841
15Amiens389111831:52−2138
16Toulouse388141635:57−2238
17Monaco388121838:57−1936
18Dijon38972231:60−2934
19Caen387121929:54−2533
20Guingamp385122128:68−4027

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
33
2Nicolas Pépé
Lille
22
3Edinson Cavani
Paris Saint-Germain
18

Penalties scored

Player boards · Penalties scored
#PlayerGoals
1Nicolas Pépé
Lille
9
2Neymar
Paris Saint-Germain
5
3Edinson Cavani
Paris Saint-Germain
4
4François Kamano
Bordeaux
4
5Marcus Thuram
Guingamp
4
6Max Gradel
Toulouse
4
7Nabil Fekir
Lyon
4
8Teji Savanier
Nîmes
4
9Wahbi Khazri
Saint-Étienne
4

Hat-tricks

Player boards · Hat-tricks
#PlayerHat-tricks
1Kylian Mbappé
Paris Saint-Germain
3
2Edinson Cavani
Paris Saint-Germain
2
3Emiliano Sala
Nantes
1
4Florian Thauvin
Marseille
1
5Nicolas Pépé
Lille
1
6Youcef Atal
Nice
1

Yellow cards

Player boards · Yellow cards
#PlayerYellow
1Wesley Lautoa
Dijon
13
2Dante
Nice
11
3Frédéric Guilbert
Caen
11
4Lucas Ocampos
Marseille
11

The season's records

Biggest win: Paris Saint-Germain 9–0 Guingamp (19 Jan 2019)

Highest-scoring game: Paris Saint-Germain 9–0 Guingamp (19 Jan 2019)

All results

May 2019 · 41 matches
All results · May 2019
DateMatchScore
1 MayRennes – Monaco2–2
3 MayStrasbourg – Marseille1–1
4 MayBordeaux – Angers0–1
4 MayGuingamp – Caen0–0
4 MayParis Saint-Germain – Nice1–1
4 MayReims – Nîmes0–3
5 MayLyon – Lille2–2
5 MayMonaco – Saint-Étienne2–3
5 MayMontpellier – Amiens1–1
5 MayNantes – Dijon3–0
5 MayToulouse – Rennes2–2
10 MaySaint-Étienne – Montpellier0–1
11 MayAmiens – Toulouse0–0
11 MayAngers – Paris Saint-Germain1–2
11 MayCaen – Reims3–2
11 MayDijon – Strasbourg2–1
11 MayNice – Nantes1–1
11 MayNîmes – Monaco1–0
12 MayLille – Bordeaux1–0
12 MayMarseille – Lyon0–3
12 MayRennes – Guingamp1–1
18 MayBordeaux – Reims0–1
18 MayGuingamp – Nîmes2–2
18 MayLille – Angers5–0
18 MayLyon – Caen4–0
18 MayMonaco – Amiens2–0
18 MayMontpellier – Nantes1–1
18 MayParis Saint-Germain – Dijon4–0
18 MaySaint-Étienne – Nice3–0
18 MayStrasbourg – Rennes0–2
18 MayToulouse – Marseille2–5
24 MayAmiens – Guingamp2–1
24 MayAngers – Saint-Étienne1–1
24 MayCaen – Bordeaux0–1
24 MayDijon – Toulouse2–1
24 MayMarseille – Montpellier1–0
24 MayNantes – Strasbourg0–1
24 MayNice – Monaco2–0
24 MayNîmes – Lyon2–3
24 MayReims – Paris Saint-Germain3–1
24 MayRennes – Lille3–1
April 2019 · 44 matches
All results · April 2019
DateMatchScore
1 AprSaint-Étienne – Nîmes2–1
3 AprMontpellier – Guingamp2–0
3 AprStrasbourg – Reims4–0
5 AprBordeaux – Marseille2–0
6 AprAmiens – Saint-Étienne2–2
6 AprAngers – Rennes3–3
6 AprGuingamp – Monaco1–1
6 AprLyon – Dijon1–3
6 AprNîmes – Caen2–0
7 AprNice – Montpellier1–0
7 AprParis Saint-Germain – Strasbourg2–2
7 AprReims – Lille1–1
7 AprToulouse – Nantes1–0
9 AprNîmes – Rennes3–1
12 AprDijon – Amiens0–0
12 AprNantes – Lyon2–1
13 AprCaen – Angers0–1
13 AprMarseille – Nîmes2–1
13 AprMonaco – Reims0–0
13 AprStrasbourg – Guingamp3–3
14 AprLille – Paris Saint-Germain5–1
14 AprMontpellier – Toulouse2–1
14 AprRennes – Nice0–0
14 AprSaint-Étienne – Bordeaux3–0
17 AprNantes – Paris Saint-Germain3–2
19 AprDijon – Rennes3–2
19 AprLyon – Angers2–1
20 AprGuingamp – Marseille1–3
20 AprNice – Caen0–1
20 AprNîmes – Bordeaux2–1
20 AprStrasbourg – Montpellier1–3
21 AprNantes – Amiens3–2
21 AprParis Saint-Germain – Monaco3–1
21 AprReims – Saint-Étienne0–2
21 AprToulouse – Lille0–0
26 AprBordeaux – Lyon2–3
28 AprAmiens – Strasbourg0–0
28 AprAngers – Reims1–1
28 AprCaen – Dijon1–0
28 AprLille – Nîmes5–0
28 AprMarseille – Nantes1–2
28 AprNice – Guingamp3–0
28 AprSaint-Étienne – Toulouse2–0
30 AprMontpellier – Paris Saint-Germain3–2
March 2019 · 36 matches
All results · March 2019
DateMatchScore
2 MarAngers – Monaco2–2
2 MarCaen – Paris Saint-Germain1–2
2 MarReims – Amiens2–2
3 MarGuingamp – Nantes0–0
3 MarLille – Dijon1–0
3 MarLyon – Toulouse5–1
3 MarMarseille – Saint-Étienne2–0
3 MarNice – Strasbourg1–0
5 MarBordeaux – Montpellier1–2
9 MarAmiens – Nîmes2–1
9 MarDijon – Reims1–1
9 MarMonaco – Bordeaux1–1
9 MarStrasbourg – Lyon2–2
10 MarMarseille – Nice1–0
10 MarMontpellier – Angers2–2
10 MarRennes – Caen3–1
10 MarSaint-Étienne – Lille0–1
10 MarToulouse – Guingamp1–0
12 MarDijon – Paris Saint-Germain0–4
15 MarLille – Monaco0–1
15 MarNice – Toulouse1–1
16 MarAngers – Amiens0–0
16 MarCaen – Saint-Étienne0–5
16 MarGuingamp – Dijon1–0
16 MarNîmes – Strasbourg2–2
17 MarBordeaux – Rennes1–1
17 MarLyon – Montpellier3–2
17 MarParis Saint-Germain – Marseille3–1
17 MarReims – Nantes1–0
29 MarRennes – Lyon0–1
30 MarMarseille – Angers2–2
31 MarAmiens – Bordeaux0–0
31 MarDijon – Nice0–1
31 MarMonaco – Caen0–1
31 MarNantes – Lille2–3
31 MarToulouse – Paris Saint-Germain0–1
February 2019 · 42 matches
All results · February 2019
DateMatchScore
1 FebLille – Nice4–0
2 FebAngers – Dijon1–0
2 FebMonaco – Toulouse2–1
2 FebReims – Marseille2–1
2 FebRennes – Amiens1–0
3 FebLyon – Paris Saint-Germain2–1
3 FebNîmes – Montpellier1–1
5 FebMarseille – Bordeaux1–0
8 FebDijon – Marseille1–2
9 FebAmiens – Caen1–0
9 FebParis Saint-Germain – Bordeaux1–0
9 FebStrasbourg – Angers1–2
10 FebGuingamp – Lille0–2
10 FebMontpellier – Monaco2–2
10 FebNantes – Nîmes2–4
10 FebNice – Lyon1–0
10 FebRennes – Saint-Étienne3–0
10 FebToulouse – Reims1–1
13 FebCaen – Nantes0–1
13 FebSaint-Étienne – Strasbourg2–1
15 FebLyon – Guingamp2–1
15 FebNîmes – Dijon2–0
16 FebAngers – Nice3–0
16 FebMarseille – Amiens2–0
16 FebMonaco – Nantes1–0
17 FebBordeaux – Toulouse2–1
17 FebCaen – Strasbourg0–0
17 FebLille – Montpellier0–0
17 FebReims – Rennes2–0
17 FebSaint-Étienne – Paris Saint-Germain0–1
20 FebBordeaux – Guingamp0–0
20 FebParis Saint-Germain – Montpellier5–1
22 FebDijon – Saint-Étienne0–1
22 FebStrasbourg – Lille1–1
23 FebAmiens – Nice1–0
23 FebGuingamp – Angers1–0
23 FebParis Saint-Germain – Nîmes3–0
24 FebMonaco – Lyon2–0
24 FebMontpellier – Reims2–4
24 FebNantes – Bordeaux1–0
24 FebRennes – Marseille1–1
24 FebToulouse – Caen1–1
January 2019 · 38 matches
All results · January 2019
DateMatchScore
8 JanAmiens – Angers0–0
8 JanNantes – Montpellier2–0
11 JanCaen – Lille1–3
11 JanLyon – Reims1–1
12 JanAmiens – Paris Saint-Germain0–3
12 JanGuingamp – Saint-Étienne0–1
12 JanNice – Bordeaux1–0
13 JanDijon – Montpellier1–1
13 JanMarseille – Monaco1–1
13 JanNantes – Rennes0–1
13 JanToulouse – Strasbourg1–2
15 JanAngers – Bordeaux1–2
16 JanGuingamp – Rennes2–1
16 JanMonaco – Nice1–1
16 JanNîmes – Nantes1–0
16 JanSaint-Étienne – Marseille2–1
16 JanToulouse – Lyon2–2
18 JanLille – Amiens2–1
19 JanMonaco – Strasbourg1–5
19 JanNîmes – Toulouse0–1
19 JanParis Saint-Germain – Guingamp9–0
19 JanReims – Nice1–1
20 JanAngers – Nantes1–0
20 JanBordeaux – Dijon1–0
20 JanCaen – Marseille0–1
20 JanRennes – Montpellier0–0
20 JanSaint-Étienne – Lyon1–2
23 JanNîmes – Angers3–1
25 JanMarseille – Lille1–2
26 JanDijon – Monaco2–0
26 JanGuingamp – Reims0–1
26 JanNice – Nîmes2–0
26 JanStrasbourg – Bordeaux1–0
27 JanAmiens – Lyon0–1
27 JanMontpellier – Caen2–0
27 JanParis Saint-Germain – Rennes4–1
27 JanToulouse – Angers0–0
30 JanNantes – Saint-Étienne1–1
December 2018 · 38 matches
All results · December 2018
DateMatchScore
1 DecAngers – Caen1–1
1 DecGuingamp – Nice0–0
1 DecLille – Lyon2–2
1 DecMonaco – Montpellier1–2
1 DecNîmes – Amiens3–0
2 DecBordeaux – Paris Saint-Germain2–2
2 DecMarseille – Reims0–0
2 DecRennes – Strasbourg1–4
2 DecToulouse – Dijon2–2
4 DecAmiens – Monaco0–2
4 DecMontpellier – Lille0–1
4 DecNice – Angers0–0
5 DecBordeaux – Saint-Étienne3–2
5 DecCaen – Nîmes1–2
5 DecDijon – Guingamp2–1
5 DecLyon – Rennes0–2
5 DecNantes – Marseille3–2
5 DecReims – Toulouse0–1
5 DecStrasbourg – Paris Saint-Germain1–1
8 DecGuingamp – Amiens1–2
8 DecRennes – Dijon2–0
9 DecLille – Reims1–1
9 DecStrasbourg – Caen2–2
15 DecReims – Strasbourg2–1
16 DecLyon – Monaco3–0
16 DecNice – Saint-Étienne1–1
16 DecNîmes – Lille2–3
18 DecCaen – Toulouse2–1
22 DecAngers – Marseille1–1
22 DecLille – Toulouse1–2
22 DecMonaco – Guingamp0–2
22 DecMontpellier – Lyon1–1
22 DecParis Saint-Germain – Nantes1–0
22 DecReims – Caen2–2
22 DecRennes – Nîmes4–0
22 DecSaint-Étienne – Dijon3–0
22 DecStrasbourg – Nice2–0
23 DecBordeaux – Amiens1–1
November 2018 · 31 matches
All results · November 2018
DateMatchScore
2 NovParis Saint-Germain – Lille2–1
3 NovCaen – Rennes1–2
3 NovDijon – Nîmes0–4
3 NovLyon – Bordeaux1–1
3 NovNice – Amiens1–0
3 NovReims – Monaco1–0
3 NovStrasbourg – Toulouse1–1
4 NovMontpellier – Marseille3–0
4 NovNantes – Guingamp5–0
4 NovSaint-Étienne – Angers4–3
9 NovLille – Strasbourg0–0
10 NovAngers – Montpellier1–0
10 NovGuingamp – Lyon2–4
10 NovNîmes – Nice0–1
10 NovSaint-Étienne – Reims2–0
10 NovToulouse – Amiens0–1
11 NovBordeaux – Caen0–0
11 NovMarseille – Dijon2–0
11 NovMonaco – Paris Saint-Germain0–4
11 NovRennes – Nantes1–1
23 NovLyon – Saint-Étienne1–0
24 NovCaen – Monaco0–1
24 NovDijon – Bordeaux0–0
24 NovNantes – Angers1–1
24 NovParis Saint-Germain – Toulouse1–0
24 NovReims – Guingamp2–1
24 NovStrasbourg – Nîmes0–1
25 NovAmiens – Marseille1–3
25 NovMontpellier – Rennes2–2
25 NovNice – Lille2–0
30 NovSaint-Étienne – Nantes3–0
October 2018 · 30 matches
All results · October 2018
DateMatchScore
5 OctToulouse – Nice1–1
6 OctAmiens – Dijon1–0
6 OctAngers – Strasbourg2–2
6 OctGuingamp – Montpellier1–1
6 OctLille – Saint-Étienne3–1
6 OctNîmes – Reims0–0
7 OctBordeaux – Nantes3–0
7 OctMarseille – Caen2–0
7 OctMonaco – Rennes1–2
7 OctParis Saint-Germain – Lyon5–0
19 OctLyon – Nîmes2–0
20 OctCaen – Guingamp0–0
20 OctDijon – Lille1–2
20 OctNantes – Toulouse4–0
20 OctParis Saint-Germain – Amiens5–0
20 OctReims – Angers1–1
20 OctStrasbourg – Monaco2–1
21 OctMontpellier – Bordeaux2–0
21 OctNice – Marseille0–1
21 OctSaint-Étienne – Rennes1–1
26 OctNîmes – Saint-Étienne1–1
27 OctAmiens – Nantes1–2
27 OctAngers – Lyon1–2
27 OctGuingamp – Strasbourg1–1
27 OctLille – Caen1–0
27 OctMonaco – Dijon2–2
27 OctToulouse – Montpellier0–3
28 OctBordeaux – Nice0–1
28 OctMarseille – Paris Saint-Germain0–2
28 OctRennes – Reims0–2
September 2018 · 49 matches
All results · September 2018
DateMatchScore
1 SepAngers – Lille1–0
1 SepDijon – Caen0–2
1 SepGuingamp – Toulouse1–2
1 SepNîmes – Paris Saint-Germain2–4
1 SepReims – Montpellier0–1
1 SepStrasbourg – Nantes2–3
2 SepMonaco – Marseille2–3
2 SepRennes – Bordeaux2–0
2 SepSaint-Étienne – Amiens0–0
14 SepNice – Rennes2–1
14 SepParis Saint-Germain – Saint-Étienne4–0
15 SepAmiens – Lille2–3
15 SepCaen – Lyon2–2
15 SepDijon – Angers1–3
15 SepMontpellier – Strasbourg1–1
15 SepToulouse – Monaco1–1
16 SepBordeaux – Nîmes3–3
16 SepMarseille – Guingamp4–0
16 SepNantes – Reims0–0
21 SepMonaco – Nîmes1–1
22 SepAngers – Toulouse0–0
22 SepLille – Nantes2–1
22 SepMontpellier – Nice1–0
22 SepReims – Dijon0–0
22 SepSaint-Étienne – Caen2–1
22 SepStrasbourg – Amiens3–1
23 SepGuingamp – Bordeaux1–3
23 SepLyon – Marseille4–2
23 SepRennes – Paris Saint-Germain1–3
25 SepMonaco – Angers0–1
25 SepNantes – Nice1–2
25 SepToulouse – Saint-Étienne2–3
26 SepAmiens – Rennes2–1
26 SepBordeaux – Lille1–0
26 SepCaen – Montpellier2–2
26 SepDijon – Lyon0–3
26 SepMarseille – Strasbourg3–2
26 SepNîmes – Guingamp0–0
26 SepParis Saint-Germain – Reims4–1
28 SepSaint-Étienne – Monaco2–0
29 SepAngers – Guingamp0–1
29 SepCaen – Amiens1–0
29 SepLyon – Nantes1–1
29 SepNice – Paris Saint-Germain0–3
29 SepReims – Bordeaux0–0
29 SepStrasbourg – Dijon3–0
30 SepLille – Marseille3–0
30 SepMontpellier – Nîmes3–0
30 SepRennes – Toulouse1–1
August 2018 · 31 matches
All results · August 2018
DateMatchScore
10 AugMarseille – Toulouse4–0
11 AugAngers – Nîmes3–4
11 AugLille – Rennes3–1
11 AugMontpellier – Dijon1–2
11 AugNantes – Monaco1–3
11 AugNice – Reims0–1
11 AugSaint-Étienne – Guingamp2–1
12 AugBordeaux – Strasbourg0–2
12 AugLyon – Amiens2–0
12 AugParis Saint-Germain – Caen3–0
17 AugReims – Lyon1–0
18 AugAmiens – Montpellier1–2
18 AugCaen – Nice1–1
18 AugDijon – Nantes2–0
18 AugGuingamp – Paris Saint-Germain1–3
18 AugMonaco – Lille0–0
18 AugRennes – Angers1–0
19 AugNîmes – Marseille3–1
19 AugStrasbourg – Saint-Étienne1–1
19 AugToulouse – Bordeaux2–1
24 AugLyon – Strasbourg2–0
25 AugAmiens – Reims4–1
25 AugMontpellier – Saint-Étienne0–0
25 AugNantes – Caen1–1
25 AugNice – Dijon0–4
25 AugParis Saint-Germain – Angers3–1
25 AugToulouse – Nîmes1–0
26 AugBordeaux – Monaco2–1
26 AugLille – Guingamp3–0
26 AugMarseille – Rennes2–2
31 AugLyon – Nice0–1

League rounds, 90 minutes, by month.

Referees

Referees
RefereeMatches
Benoît Bastien21
Antony Gautier20
Jerome Miguelgorry20
Frank Schneider19
Hakim Ben el Hadj19
Ruddy Buquet19
Thomas Leonard19
Willy Delajod19
Amaury Delerue18
Clement Turpin18
Florent Batta18
François Letexier18
Johan Hamel18
Karim Abed18
Mikael Lesage18
Olivier Thual18
Benoît Millot17
Eric Wattellier16
Jérôme Brisard16
Nicolas Rainville14
Jeremy Stinat12
Brisard Jerome3

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.