Ligue 1

Ligue 1 · independent league model

Ligue 1 2016-17 Results and Season Statistics

Updated 15 Oct 2026, 03:52 UTC · regular-season results and model estimates

Ligue 1 2016-17 finished with 380 completed matches and 994 goals, 2.62 per match. Home teams won 48.9%, 24.7% were drawn and away teams won 26.3%.

Season rates

MeasureValue
Completed matches380
Goals per match2.62
Home wins48.9%
Draws24.7%
Away wins26.3%
Over 2.5 goals48.7%
Both teams scored46.3%
At least one clean sheet53.7%

Club records in 2016-17

ClubPlayedWDLGFGAGDHome W-D-LAway W-D-L
Angers38137184049-98-5-65-2-12
Bastia38810202957-285-9-53-1-15
Caen38107213665-297-2-103-5-11
Dijon Fco38813174658-127-6-61-7-11
Girondins Bordeaux38151495343109-6-46-8-5
Guingamp38148164653-712-3-42-5-12
Lille38137184047-77-3-96-4-9
Lorient38106224470-267-4-83-2-14
Lyon382141380483212-1-69-3-7
Marseille3817111057411613-4-24-7-8
Metz381110173972-337-7-54-3-12
Monaco383053107317617-1-113-4-2
Montpellier38109194866-188-5-62-4-13
Nancy3898212952-237-3-92-5-12
Nantes38149154054-148-4-76-5-8
Nice382212463362714-4-18-8-3
Paris Saint-Germain38276583275613-6-014-0-5
Rennes381214123642-610-6-32-8-9
Saint-Etienne381214124142-17-9-35-5-9
Toulouse381014143741-48-6-52-8-9

Clubs are listed alphabetically, not ranked. Final positions depend on official points adjustments that this results history does not carry, and in Spain and Italy on head-to-head tie-breakers.

Standout results

Biggest winning margins

Highest-scoring matches

Every 2016-17 result

DateHomeScoreAway
12 Aug 2016Monaco2–2Guingamp
12 Aug 2016Bastia0–1Paris Saint-Germain
13 Aug 2016Caen3–2Lorient
13 Aug 2016Dijon Fco0–1Nantes
13 Aug 2016Metz3–2Lille
13 Aug 2016Girondins Bordeaux3–2Saint-Etienne
13 Aug 2016Montpellier1–0Angers
14 Aug 2016Nancy0–3Lyon
14 Aug 2016Nice1–0Rennes
14 Aug 2016Marseille0–0Toulouse
19 Aug 2016Lyon2–0Caen
20 Aug 2016Angers0–1Nice
20 Aug 2016Lorient0–3Bastia
20 Aug 2016Nantes0–1Monaco
20 Aug 2016Lille1–0Dijon Fco
20 Aug 2016Rennes2–0Nancy
20 Aug 2016Toulouse4–1Girondins Bordeaux
21 Aug 2016Saint-Etienne3–1Montpellier
21 Aug 2016Guingamp2–1Marseille
21 Aug 2016Paris Saint-Germain3–0Metz
26 Aug 2016Marseille2–0Lorient
27 Aug 2016Caen2–0Bastia
27 Aug 2016Dijon Fco4–2Lyon
27 Aug 2016Metz2–0Angers
27 Aug 2016Montpellier1–1Rennes
27 Aug 2016Nancy0–2Guingamp
27 Aug 2016Nice1–1Lille
28 Aug 2016Monaco3–1Paris Saint-Germain
28 Aug 2016Saint-Etienne0–0Toulouse
28 Aug 2016Girondins Bordeaux1–0Nantes
9 Sept 2016Paris Saint-Germain1–1Saint-Etienne
10 Sept 2016Angers3–1Dijon Fco
10 Sept 2016Bastia2–1Toulouse
10 Sept 2016Lorient0–2Nancy
10 Sept 2016Guingamp1–1Montpellier
10 Sept 2016Lille1–4Monaco
10 Sept 2016Lyon1–3Girondins Bordeaux
11 Sept 2016Nantes0–3Metz
11 Sept 2016Nice3–2Marseille
11 Sept 2016Rennes2–0Caen
16 Sept 2016Caen0–6Paris Saint-Germain
17 Sept 2016Monaco3–0Rennes
17 Sept 2016Dijon Fco0–0Metz
17 Sept 2016Lorient1–0Lille
17 Sept 2016Girondins Bordeaux0–1Angers
17 Sept 2016Nancy1–1Nantes
17 Sept 2016Toulouse2–1Guingamp
18 Sept 2016Saint-Etienne1–0Bastia
18 Sept 2016Montpellier1–1Nice
18 Sept 2016Marseille0–0Lyon
20 Sept 2016Lille1–2Toulouse
20 Sept 2016Paris Saint-Germain3–0Dijon Fco
21 Sept 2016Angers2–1Caen
21 Sept 2016Bastia0–0Nancy
21 Sept 2016Metz0–3Girondins Bordeaux
21 Sept 2016Nantes0–0Saint-Etienne
21 Sept 2016Guingamp1–0Lorient
21 Sept 2016Nice4–0Monaco
21 Sept 2016Lyon5–1Montpellier
21 Sept 2016Rennes3–2Marseille
23 Sept 2016Toulouse2–0Paris Saint-Germain
24 Sept 2016Monaco2–1Angers
24 Sept 2016Bastia1–0Guingamp
24 Sept 2016Dijon Fco3–0Rennes
24 Sept 2016Lorient1–0Lyon
24 Sept 2016Girondins Bordeaux0–0Caen
24 Sept 2016Montpellier0–1Metz
25 Sept 2016Saint-Etienne3–1Lille
25 Sept 2016Nancy0–1Nice
25 Sept 2016Marseille2–1Nantes
30 Sept 2016Rennes1–0Guingamp
1 Oct 2016Caen1–0Toulouse
1 Oct 2016Dijon Fco3–3Montpellier
1 Oct 2016Metz0–7Monaco
1 Oct 2016Nantes1–0Bastia
1 Oct 2016Lille1–0Nancy
1 Oct 2016Paris Saint-Germain2–0Girondins Bordeaux
2 Oct 2016Angers1–1Marseille
2 Oct 2016Nice2–1Lorient
2 Oct 2016Lyon2–0Saint-Etienne
14 Oct 2016Nice2–0Lyon
14 Oct 2016Toulouse3–1Monaco
15 Oct 2016Bastia1–2Angers
15 Oct 2016Lorient1–2Nantes
15 Oct 2016Guingamp1–0Lille
15 Oct 2016Montpellier3–2Caen
15 Oct 2016Nancy1–2Paris Saint-Germain
16 Oct 2016Saint-Etienne1–1Dijon Fco
16 Oct 2016Marseille1–0Metz
16 Oct 2016Rennes1–1Girondins Bordeaux
21 Oct 2016Monaco6–2Montpellier
22 Oct 2016Angers0–0Toulouse
22 Oct 2016Dijon Fco1–0Lorient
22 Oct 2016Nantes1–2Rennes
22 Oct 2016Girondins Bordeaux1–1Nancy
22 Oct 2016Lille2–1Bastia
22 Oct 2016Lyon1–3Guingamp
23 Oct 2016Caen0–2Saint-Etienne
23 Oct 2016Metz2–4Nice
23 Oct 2016Paris Saint-Germain0–0Marseille
28 Oct 2016Lille0–1Paris Saint-Germain
29 Oct 2016Saint-Etienne1–1Monaco
29 Oct 2016Bastia0–0Dijon Fco
29 Oct 2016Lorient2–2Montpellier
29 Oct 2016Guingamp1–0Angers
29 Oct 2016Nancy2–0Caen
29 Oct 2016Toulouse1–2Lyon
30 Oct 2016Nice4–1Nantes
30 Oct 2016Marseille0–0Girondins Bordeaux
30 Oct 2016Rennes1–0Metz
4 Nov 2016Montpellier3–1Marseille
5 Nov 2016Angers1–0Lille
5 Nov 2016Monaco6–0Nancy
5 Nov 2016Dijon Fco3–3Guingamp
5 Nov 2016Nantes1–1Toulouse
5 Nov 2016Girondins Bordeaux2–1Lorient
5 Nov 2016Lyon2–1Bastia
6 Nov 2016Caen1–0Nice
6 Nov 2016Metz0–0Saint-Etienne
6 Nov 2016Paris Saint-Germain4–0Rennes
18 Nov 2016Lorient0–3Monaco
18 Nov 2016Lille0–1Lyon
19 Nov 2016Bastia1–1Montpellier
19 Nov 2016Nancy1–0Dijon Fco
19 Nov 2016Paris Saint-Germain2–0Nantes
19 Nov 2016Rennes1–1Angers
19 Nov 2016Toulouse1–2Metz
20 Nov 2016Saint-Etienne0–1Nice
20 Nov 2016Guingamp1–1Girondins Bordeaux
20 Nov 2016Marseille1–0Caen
25 Nov 2016Rennes1–0Toulouse
26 Nov 2016Monaco4–0Marseille
26 Nov 2016Caen1–1Guingamp
26 Nov 2016Metz3–3Lorient
26 Nov 2016Nantes0–0Lille
26 Nov 2016Girondins Bordeaux3–2Dijon Fco
26 Nov 2016Montpellier0–0Nancy
27 Nov 2016Angers1–2Saint-Etienne
27 Nov 2016Nice1–1Bastia
27 Nov 2016Lyon1–2Paris Saint-Germain
29 Nov 2016Dijon Fco1–1Monaco
29 Nov 2016Lorient2–1Rennes
29 Nov 2016Lille4–2Caen
30 Nov 2016Saint-Etienne0–0Marseille
30 Nov 2016Bastia1–1Girondins Bordeaux
30 Nov 2016Nantes0–6Lyon
30 Nov 2016Guingamp0–1Nice
30 Nov 2016Nancy4–0Metz
30 Nov 2016Paris Saint-Germain2–0Angers
30 Nov 2016Toulouse1–0Montpellier
2 Dec 2016Caen3–3Dijon Fco
3 Dec 2016Angers2–2Lorient
3 Dec 2016Monaco5–0Bastia
3 Dec 2016Girondins Bordeaux0–1Lille
3 Dec 2016Guingamp2–0Nantes
3 Dec 2016Montpellier3–0Paris Saint-Germain
4 Dec 2016Nice3–0Toulouse
4 Dec 2016Marseille3–0Nancy
4 Dec 2016Rennes2–0Saint-Etienne
10 Dec 2016Bastia2–0Metz
10 Dec 2016Dijon Fco1–2Marseille
10 Dec 2016Girondins Bordeaux0–4Monaco
10 Dec 2016Lille2–1Montpellier
10 Dec 2016Nancy2–0Angers
10 Dec 2016Toulouse3–2Lorient
11 Dec 2016Saint-Etienne1–0Guingamp
11 Dec 2016Lyon1–0Rennes
11 Dec 2016Paris Saint-Germain2–2Nice
16 Dec 2016Angers0–2Nantes
17 Dec 2016Lorient2–1Saint-Etienne
17 Dec 2016Guingamp2–1Paris Saint-Germain
17 Dec 2016Montpellier4–0Girondins Bordeaux
17 Dec 2016Rennes1–2Bastia
17 Dec 2016Toulouse1–1Nancy
18 Dec 2016Monaco1–3Lyon
18 Dec 2016Caen3–0Metz
18 Dec 2016Nice2–1Dijon Fco
18 Dec 2016Marseille2–0Lille
21 Dec 2016Monaco2–1Caen
21 Dec 2016Saint-Etienne0–0Nancy
21 Dec 2016Bastia1–2Marseille
21 Dec 2016Dijon Fco2–0Toulouse
21 Dec 2016Metz2–2Guingamp
21 Dec 2016Nantes1–0Montpellier
21 Dec 2016Girondins Bordeaux0–0Nice
21 Dec 2016Lille1–1Rennes
21 Dec 2016Lyon2–0Angers
21 Dec 2016Paris Saint-Germain5–0Lorient
13 Jan 2017Lille1–1Saint-Etienne
14 Jan 2017Angers1–1Girondins Bordeaux
14 Jan 2017Lorient3–1Guingamp
14 Jan 2017Montpellier1–1Dijon Fco
14 Jan 2017Nancy1–0Bastia
14 Jan 2017Rennes0–1Paris Saint-Germain
14 Jan 2017Toulouse0–1Nantes
15 Jan 2017Caen3–2Lyon
15 Jan 2017Nice0–0Metz
15 Jan 2017Marseille1–4Monaco
18 Jan 2017Nantes1–0Caen
20 Jan 2017Bastia1–1Nice
21 Jan 2017Dijon Fco0–0Lille
21 Jan 2017Metz2–0Montpellier
21 Jan 2017Nantes0–2Paris Saint-Germain
21 Jan 2017Girondins Bordeaux1–0Toulouse
21 Jan 2017Guingamp1–1Rennes
22 Jan 2017Monaco4–0Lorient
22 Jan 2017Saint-Etienne2–1Angers
22 Jan 2017Lyon3–1Marseille
27 Jan 2017Marseille5–1Montpellier
28 Jan 2017Angers2–1Metz
28 Jan 2017Bastia1–1Caen
28 Jan 2017Lorient2–3Dijon Fco
28 Jan 2017Nancy0–2Girondins Bordeaux
28 Jan 2017Lyon1–2Lille
28 Jan 2017Rennes1–1Nantes
29 Jan 2017Nice3–1Guingamp
29 Jan 2017Paris Saint-Germain1–1Monaco
29 Jan 2017Toulouse0–3Saint-Etienne
3 Feb 2017Metz1–0Marseille
4 Feb 2017Monaco3–0Nice
4 Feb 2017Dijon Fco1–3Paris Saint-Germain
4 Feb 2017Girondins Bordeaux1–1Rennes
4 Feb 2017Guingamp0–1Caen
4 Feb 2017Lille0–1Lorient
4 Feb 2017Montpellier2–1Bastia
5 Feb 2017Saint-Etienne2–0Lyon
5 Feb 2017Nantes0–2Nancy
5 Feb 2017Toulouse4–0Angers
7 Feb 2017Caen0–4Girondins Bordeaux
7 Feb 2017Montpellier1–2Monaco
7 Feb 2017Paris Saint-Germain2–1Lille
8 Feb 2017Angers0–0Rennes
8 Feb 2017Lorient1–1Toulouse
8 Feb 2017Metz2–1Dijon Fco
8 Feb 2017Nice1–0Saint-Etienne
8 Feb 2017Marseille2–0Guingamp
8 Feb 2017Lyon4–0Nancy
10 Feb 2017Girondins Bordeaux0–3Paris Saint-Germain
11 Feb 2017Monaco5–0Metz
11 Feb 2017Dijon Fco2–0Caen
11 Feb 2017Guingamp2–1Lyon
11 Feb 2017Lille1–2Angers
11 Feb 2017Nancy0–3Montpellier
11 Feb 2017Toulouse4–1Bastia
12 Feb 2017Saint-Etienne4–0Lorient
12 Feb 2017Nantes3–2Marseille
12 Feb 2017Rennes2–2Nice
17 Feb 2017Bastia1–1Monaco
18 Feb 2017Angers1–0Nancy
18 Feb 2017Caen0–1Lille
18 Feb 2017Lorient0–1Nice
18 Feb 2017Metz1–1Nantes
18 Feb 2017Marseille2–0Rennes
19 Feb 2017Girondins Bordeaux3–0Guingamp
19 Feb 2017Montpellier2–1Saint-Etienne
19 Feb 2017Lyon4–2Dijon Fco
19 Feb 2017Paris Saint-Germain0–0Toulouse
21 Feb 2017Caen1–0Nancy
24 Feb 2017Nantes3–1Dijon Fco
24 Feb 2017Nice2–1Montpellier
25 Feb 2017Angers3–0Bastia
25 Feb 2017Guingamp1–2Monaco
25 Feb 2017Lille2–3Girondins Bordeaux
25 Feb 2017Nancy0–0Toulouse
25 Feb 2017Rennes1–0Lorient
26 Feb 2017Saint-Etienne0–1Caen
26 Feb 2017Marseille1–5Paris Saint-Germain
26 Feb 2017Lyon5–0Metz
1 Mar 2017Bastia2–2Nantes
3 Mar 2017Girondins Bordeaux1–1Lyon
4 Mar 2017Bastia0–0Saint-Etienne
4 Mar 2017Caen2–3Angers
4 Mar 2017Dijon Fco0–1Nice
4 Mar 2017Metz1–1Rennes
4 Mar 2017Montpellier1–1Guingamp
4 Mar 2017Paris Saint-Germain1–0Nancy
5 Mar 2017Monaco4–0Nantes
5 Mar 2017Lorient1–4Marseille
5 Mar 2017Toulouse1–1Lille
10 Mar 2017Nice2–2Caen
10 Mar 2017Marseille3–0Angers
11 Mar 2017Monaco2–1Girondins Bordeaux
11 Mar 2017Guingamp5–0Bastia
11 Mar 2017Montpellier2–3Nantes
11 Mar 2017Nancy1–2Lille
11 Mar 2017Rennes1–1Dijon Fco
12 Mar 2017Saint-Etienne2–2Metz
12 Mar 2017Lorient1–2Paris Saint-Germain
12 Mar 2017Lyon4–0Toulouse
17 Mar 2017Metz1–0Bastia
17 Mar 2017Lille0–0Marseille
18 Mar 2017Angers3–0Guingamp
18 Mar 2017Nantes1–1Nice
18 Mar 2017Girondins Bordeaux5–1Montpellier
18 Mar 2017Nancy2–3Lorient
18 Mar 2017Toulouse0–0Rennes
19 Mar 2017Caen0–3Monaco
19 Mar 2017Dijon Fco0–1Saint-Etienne
19 Mar 2017Paris Saint-Germain2–1Lyon
31 Mar 2017Guingamp1–0Nancy
1 Apr 2017Bastia0–1Lille
1 Apr 2017Marseille1–1Dijon Fco
2 Apr 2017Lorient1–0Caen
2 Apr 2017Nantes2–1Angers
2 Apr 2017Montpellier0–1Toulouse
2 Apr 2017Nice2–1Girondins Bordeaux
2 Apr 2017Rennes1–1Lyon
5 Apr 2017Metz0–3Lyon
7 Apr 2017Lille1–2Nice
8 Apr 2017Angers0–1Monaco
8 Apr 2017Caen0–2Montpellier
8 Apr 2017Dijon Fco1–2Bastia
8 Apr 2017Girondins Bordeaux3–0Metz
8 Apr 2017Nancy3–0Rennes
8 Apr 2017Lyon1–4Lorient
9 Apr 2017Saint-Etienne1–1Nantes
9 Apr 2017Paris Saint-Germain4–0Guingamp
9 Apr 2017Toulouse0–0Marseille
14 Apr 2017Angers0–2Paris Saint-Germain
15 Apr 2017Monaco2–1Dijon Fco
15 Apr 2017Metz2–2Caen
15 Apr 2017Guingamp2–1Toulouse
15 Apr 2017Montpellier2–0Lorient
15 Apr 2017Nice3–1Nancy
15 Apr 2017Rennes2–0Lille
16 Apr 2017Bastia0–3Lyon
16 Apr 2017Nantes0–1Girondins Bordeaux
16 Apr 2017Marseille4–0Saint-Etienne
18 Apr 2017Metz2–3Paris Saint-Germain
21 Apr 2017Nancy0–0Marseille
22 Apr 2017Caen0–2Nantes
22 Apr 2017Dijon Fco3–2Angers
22 Apr 2017Lorient5–1Metz
22 Apr 2017Girondins Bordeaux2–0Bastia
22 Apr 2017Lille3–0Guingamp
22 Apr 2017Paris Saint-Germain2–0Montpellier
23 Apr 2017Saint-Etienne1–1Rennes
23 Apr 2017Lyon1–2Monaco
23 Apr 2017Toulouse1–1Nice
28 Apr 2017Angers1–2Lyon
29 Apr 2017Monaco3–1Toulouse
29 Apr 2017Bastia1–0Rennes
29 Apr 2017Metz2–1Nancy
29 Apr 2017Nantes1–0Lorient
29 Apr 2017Guingamp0–2Saint-Etienne
29 Apr 2017Montpellier0–3Lille
30 Apr 2017Caen1–5Marseille
30 Apr 2017Dijon Fco0–0Girondins Bordeaux
30 Apr 2017Nice3–1Paris Saint-Germain
5 May 2017Saint-Etienne2–2Girondins Bordeaux
6 May 2017Lorient1–1Angers
6 May 2017Guingamp4–0Dijon Fco
6 May 2017Lille0–2Metz
6 May 2017Nancy0–3Monaco
6 May 2017Paris Saint-Germain5–0Bastia
6 May 2017Toulouse0–1Caen
7 May 2017Marseille2–1Nice
7 May 2017Lyon3–2Nantes
7 May 2017Rennes1–0Montpellier
14 May 2017Monaco4–0Lille
14 May 2017Saint-Etienne0–5Paris Saint-Germain
14 May 2017Bastia2–0Lorient
14 May 2017Caen0–1Rennes
14 May 2017Dijon Fco2–0Nancy
14 May 2017Metz1–1Toulouse
14 May 2017Nantes4–1Guingamp
14 May 2017Girondins Bordeaux1–1Marseille
14 May 2017Montpellier1–3Lyon
14 May 2017Nice0–2Angers
17 May 2017Monaco2–0Saint-Etienne
20 May 2017Angers2–0Montpellier
20 May 2017Lorient1–1Girondins Bordeaux
20 May 2017Guingamp1–0Metz
20 May 2017Lille3–0Nantes
20 May 2017Nancy3–1Saint-Etienne
20 May 2017Marseille1–0Bastia
20 May 2017Lyon3–3Nice
20 May 2017Paris Saint-Germain1–1Caen
20 May 2017Rennes2–3Monaco
20 May 2017Toulouse0–0Dijon Fco

Regular-season matches only; playoffs are excluded. Results through 20 May 2017.

More Ligue 1 history

Sources and limitations

Fixtures, results and provider standings: football-data.org. Completed score history since 2005-06: football-data.co.uk. Forecasts use only results available before their publication time.

The source carries exact kickoff times from 2019-20. Earlier seasons give the date only and are read as a 15:00 kickoff in the competition's own timezone, which keeps those results out of training until three hours later.

No verified injury or confirmed-lineup adjustment is included for Ligue 1. Promotion playoffs and promotion probabilities are outside this model. Probabilities are estimates, not guarantees. Check this league's model record.