A mild upset: Spain (38% pre-match) got past France.
Expected goals race
FranceSpain● 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
France (attacking →)Spain (attacking ←)size = xG · star = goal
France · match stats · Spain
49.1Possession50.9
10Shots10
3On Target2
7Corners1
11Fouls12
4Offsides5
0Saves3
2Yellows1
0Reds0
What the model expected
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.