France vs Spain highlights: Spain defeated France 2-0 in the first semifinal of the 2026 FIFA World Cup to reach the final for only the second time in their history. Mikel Oyarzabal’s first-half penalty and a composed second-half finish from Pedro Porro proved decisive at AT&T Stadium in Dallas.
Spain took the lead in the 22nd minute when Lamine Yamal was brought down inside the box by Lucas Digne. Oyarzabal stepped up and calmly converted the penalty, sending Mike Maignan the wrong way. France struggled to create clear chances in the first half, although Kylian Mbappe showed glimpses of quality.
The second half saw France push forward in search of an equaliser. However, Spain doubled their lead in the 58th minute through a well-worked move. Porro exchanged passes with Dani Olmo before slotting the ball past Maignan to make it 2-0. The goal effectively killed the contest as Spain managed the game intelligently in the closing stages.
France introduced fresh legs in the second half, including Desire Doue and Theo Hernandez, but failed to seriously trouble Unai Simon. Mbappd had a few opportunities but could not find the target. Spain’s defence, led by Aymeric Laporte, remained solid throughout.
The victory sends Luis de la Fuente’s side into Sunday’s final, where they will face either England or Argentina. For France, it marks the end of their campaign despite a strong run to the semifinals.
The full-time whistle blows. Spain defeat France 2-0 and reach the FIFA World Cup final for only the second time in their history.
Ousmane Dembele controls the ball well on the right wing, drives into the box, and shoots. Unai Simon stands firm and punches the ball away to safety.
In the 90+4th minute, Nico Williams cuts into the box from the left and shoots from a tight angle. The effort hits the side netting and does not trouble Mike Maignan, who quickly restarts play.
Spain are managing the game well. Their substitutions have helped them maintain possession and control the tempo in midfield.
At the 90th minute, the referee signals seven minutes of added time.
Lamine Yamal fouls Desire Doue on the left side of the box, giving France a free kick in a dangerous area. However, Kylian Mbappr stands over a free kick on the edge of the box. He strikes the ball well but sends his effort high over the crossbar.
Kylian Mbappe is shown a yellow card after catching Unai Simon in the face while trying to win the ball.
Ousmane Dembele is fouled by Rodri on the left side of the box. France win a free kick, but Dembele’s delivery is poor and Spain clear it comfortably.
Spain make a double substitution as Alex Baena and Pedro Porro are replaced by Nico Williams and Marcos Llorente.
Rayan Cherki plays a ball over the top to Kylian Mbappe. Unai Simon rushes off his line to head it clear. The ball falls to Desire Doue, who shoots, but Simon scrambles back in time to make a vital block.
Spain make a double substitution as Dani Olmo and Fabian Ruiz are replaced by Pedri and Mikel Merino.
Spain make a change as Mikel Oyarzabal is replaced by Ferran Torres.
Play resumes after the hydration break. France make a double change as Michael Olise and Lucas Digne are replaced by Rayan Cherki and Theo Hernández.
In the 69th minute, the referee pauses play for the second-half hydration break.
Kylian Mbappe receives the ball on the edge of the box, takes a touch, and shoots. Marc Cucurella produces a vital touch to deflect the effort just past the left post.
In the 64th minute, Kylian Mbappe cuts into the box from the left and delivers a cross, but it’s too close to Unai Simon, who palms the ball away for a corner.
Spain make it 2-0. Pedro Porro cuts inside from the right, exchanges passes with Dani Olmo, and calmly slots the ball past Mike Maignan to double Spain’s lead.
In the 57th minute, France make a change as Bradley Barcola is replaced by Desire Doue.
Pedro Porro finds Lamine Yamal on the right. The youngster cuts inside and shoots from a tight angle, but Mike Maignan makes the save. The effort would not have counted anyway, as Yamal was flagged offside.
France make an early second-half change as Adrien Rabiot, who was on a yellow card, is replaced by Manu Kone.
Oops! Looks like you have exceeded the limit to bookmark the image. Remove some to bookmark this image.