World Cup 2026

← All matches
Semi-final · Knockout · 2026-07-14
France
xG 1.22
HT 0–10 – 2
Spain
xG 2.20
Spain Mikel Oyarzabal 22′ (pen.), Pedro Porro 58′
AT&T Stadium · 70,176 attendance
The story

A mild upset: Spain (38% pre-match) got past France.

Expected goals race
120′15′30′45′60′75′90′1.222.20Mikel Oyarzabal 22′Pedro Porro 58′
France Spain ● goal

Cumulative expected goals, minute by minute. ESPN's free feed has no xG, so each shot's xG is estimated with a naive distance-and-angle logistic model fitted on shot coordinates from the play-by-play.

Shot map
Adrien Rabiot · 6′ · xG 0.08 · Shot Off TargetÁlex Baena · 11′ · xG 0.09 · Shot BlockedMikel Oyarzabal · 22′ · xG 0.76 · Penalty - ScoredDani Olmo · 34′ · xG 0.05 · Shot Off TargetBradley Barcola · 36′ · xG 0.09 · Shot Off TargetPedro Porro · 37′ · xG 0.05 · Shot Off TargetFabián Ruiz · 38′ · xG 0.41 · Shot BlockedMikel Oyarzabal · 52′ · xG 0.07 · Shot Off TargetÁlex Baena · 58′ · xG 0.07 · Shot BlockedPedro Porro · 58′ · xG 0.29 · GoalAurélien Tchouaméni · 65′ · xG 0.38 · Shot Off TargetKylian Mbappé · 67′ · xG 0.13 · Shot BlockedDésiré Doué · 67′ · xG 0.10 · Shot BlockedFerran Torres · 78′ · xG 0.27 · Shot Off TargetDésiré Doué · 81′ · xG 0.06 · Shot On TargetKylian Mbappé · 89′ · xG 0.07 · Shot Off TargetNico Williams · 90'+4′ · xG 0.14 · Shot Off TargetOusmane Dembélé · 90'+5′ · xG 0.14 · Shot On TargetOusmane Dembélé · 90'+7′ · xG 0.11 · Shot On TargetKylian Mbappé · 90'+7′ · xG 0.06 · Shot Off Target
France (attacking →) Spain (attacking ←) size = xG · star = goal
France  ·  match stats  ·  Spain
49.1 Possession 50.9
10 Shots 10
3 On Target 2
7 Corners 1
11 Fouls 12
4 Offsides 5
0 Saves 3
2 Yellows 1
0 Reds 0
What the model expected
France 36%draw 26%Spain 38%ACTUAL

Pre-match Elo: France 2145, Spain 2150. The model priced this France 36% / draw 26% / Spain 38%, most likely score 1–1. A plausible-but-not-favoured outcome. The result moves 37 Elo points from France to Spain — that flows straight into the next round of tournament simulations.

Timeline
9' YELLOWAdrien Rabiot (France) is shown the yellow card for a bad foul.
22' PEN GOALGoal! France 0, Spain 1. Mikel Oyarzabal (Spain) converts the penalty with a left footed shot to the top right corner.
30' SUBSubstitution, France. Maxence Lacroix replaces William Saliba because of an injury.
31' YELLOWMarc Cucurella (Spain) is shown the yellow card for a bad foul.
45' SUBSubstitution, France. Manu Koné replaces Adrien Rabiot.
57' SUBSubstitution, France. Désiré Doué replaces Bradley Barcola.
58' GOALGoal! France 0, Spain 2. Pedro Porro (Spain) right footed shot from the centre of the box to the bottom right corner. Assisted by Dani Olmo.
72' SUBSubstitution, France. Théo Hernández replaces Lucas Digne.
72' SUBSubstitution, France. Rayan Cherki replaces Michael Olise.
74' SUBSubstitution, Spain. Ferran Torres replaces Mikel Oyarzabal.
78' SUBSubstitution, Spain. Mikel Merino replaces Dani Olmo.
78' SUBSubstitution, Spain. Pedri replaces Fabián Ruiz.
84' SUBSubstitution, Spain. Marcos Llorente replaces Pedro Porro.
84' SUBSubstitution, Spain. Nico Williams replaces Álex Baena.
86' YELLOWKylian Mbappé (France) is shown the yellow card for a bad foul.
Lineups
France
4-2-3-1
  • 16Mike Maignan G
  • 17William Saliba CD-L
  • 4Dayot Upamecano CD-R
  • 3Lucas Digne LB
  • 5Jules Koundé RB
  • 11Michael Olise AM
  • 14Adrien Rabiot LM
  • 8Aurélien Tchouaméni RM
  • 10Kylian Mbappé F
  • 12Bradley Barcola AM-L
  • 7Ousmane Dembélé AM-R
Subs: Maxence Lacroix, Manu Koné, Désiré Doué, Theo Hernández, Rayan Cherki
Spain
4-2-3-1
  • 23Unai Simón G
  • 14Aymeric Laporte CD-L
  • 22Pau Cubarsí CD-R
  • 24Marc Cucurella LB
  • 12Pedro Porro RB
  • 10Dani Olmo AM
  • 8Fabián Ruiz LM
  • 16Rodri RM
  • 21Mikel Oyarzabal F
  • 15Álex Baena AM-L
  • 19Lamine Yamal AM-R
Subs: Ferran Torres, Mikel Merino, Pedri, Marcos Llorente, Nico Williams
← Fixtures, table & predictions

Generated automatically from public match data. Stats: ESPN · Results: openfootball · xG: own naive model (distance + angle).