World Cup semi-final: France 0 Spain 2 (Oyarzabal 22, Porro 58)
France: Maignan; Koundé, Saliba (Lacroix 29), Upamecano, Digne (Hernandez 73); Tchouaméni, Rabiot (Koné 45); Dembele, Barcola (Doué 57), Olise (Cherki 73); Mbappé
Spain: Simon; Porro (Llorente 84), Cubarsí, Laporte, Cucurella; Rodri, Ruiz (Merino 78), Olmo (Pedri 78); Yamal, Oyarzabal (Torres 74), Baena (Williams 84)
Here is Keith Duggan’s match report:
Death in the Texan afternoon. Spain’s matador instincts have seen them advance through this epic tournament with imperious assurance, with defensive and technical excellence, consummate passing and the capacity to dazzle. So it went for France. The favourites for the tournament crashed out on a day when their European opponents both toyed and frustrated them and struck two goals with cold ruthlessness.
[ Spain outplay favourites France to make World Cup finalOpens in new window ]
That’s all from me, good night! Back tomorrow for England against Argentina.
What a display of teamwork by Spain. Rodri, Ruiz and Olmo won the midfield battle and then some, the defence was magnificent. Yamal gave Digne a torrid time.
France were outplayed, a few questionable decisions by Deschamps, especially to play two in midfield against Spain. A great team, but it’s no World Cup for Mbappé.
Stay tuned for Keith Duggan’s report.
Another shot by Mbappé, straight over the bar. Spanish fans are jubilant.
Full-time: France 0 Spain 2
Spain are in the World Cup final!
90+5 mins: Spain toying with France, passing around them to Oles from the Spanish crowd. What a team, what a performance of teamwork and cohesion. Williams has a chance on the wing, which just goes wide. Dembele tries one from the counter, but it’s straight at Simon.
90+2 mins: Great defending again by Spain, Cucurella with the clearance after Cherki and Mbappé almost manufactured a goal. Seven minutes stoppage time.
88 mins: Yamal fouls Doué just outside the box. Mbappé steps up, but hits it over the bar. The follow-up attack, Hernandez gives Yamal a physical presence he simply wasn’t getting from Digne to wrestle him out of play.
87 mins: France losing their discipline as Mbappé goes in hard on Simon as he’s picking up the ball, picks up a yellow with an unnecessary foul.
85 mins: Two more subs for Spain, Nico Williams and Marcos Llorente, some quality to be bringing on at this stage. France running out of time.
82 mins: A strange moment as Simon miscues a ball over the top and it falls to Doué, it wasn’t quite an open goal with plenty of players in the way but he took a long time to shoot and it was straight at the defender.
77 mins: On comes Pedri and super sub Merino. Ruiz and Olmo off for Spain. Then a chance for Torres as Deschamps looks exasperated on the bench. Clipped cross by Baene and Torres heads just wide.
73 mins: Olise is off, Cherki on, a good option to have at least to try to make the difference. Fifth sub is Theo Hernandez on for Dign, who was completely out of his depth against Yamal.
Spain finally make their first sub, Ferran Torres on for Oyarzabal.
69 mins: Close by Mbappé. Powerful shot from just outside the box and blocked by Cucurella and just deflects wide of the goal.
Time for the hydration break
Shamrock Rovers are 4-1 up against Floriana. Two goals by John McGovern and now they’re 4-3 on aggregate in the Champions League first round second leg. Brilliant comeback so far, 70 mins gone.
Here is that Porro goal:
65 mins: Mbappé is trying to make things happen and he dribbles down the wing and takes a strong shot at Simon’s near post, well saved though.
61 mins: Goal disallowed for Spain! Yamal had the ball in the back of the net, France are ragged. Yamal had received the ball, turned past Digne, cut in and smashed it into the top corner.
58 mins: Goal for Spain! Excellently taken goal by Porro! France in big trouble.
Porro with a firm pass to Olmo, who touches it beautifully back to Porro who finishes well around the keeper. Great one-two and it’s been coming. France have no answers for Spain so far.
France 0 Spain 2
57 mins: More smart goalkeeping by Simon as France make another chance to arrest control from France, Doué on for Barcola. Surprised Doué didn’t start, he is well capable of magic.
55 mins: France are looking edgy, Barcola had to help out Digne who is in trouble and then Upamecano passes the ball past Maignan almost out for a corner.
52 mins: It’s offside but it had seemed like Yamal was through on goal from a ball over the top, Maignan made the save though. This half is going like the first, Spain winning a lot of 50-50 balls and great in possession.
47 mins: Digne has looked a bit dodgy this game, albeit very hard to play against Yamal and loses it again and a bit fortunate not to concede a free-kick.
Manu Koné is set to come on for France as they need to change it up. Rabiot unsurprisingly comes off, he could have been sent off in the first half.
Half-time: France 0 Spain 1
Spain have been rock solid at the back, Rodri is showing why he was a Ballon d’Or winner protecting them and Ruiz justifying his selection. Cucurella and Porro have been top-class at full-back against some of the world’s best wingers.
Penalty is the difference between the teams, not undeserved, but you imagine France will have plenty more to come in the second half.
Here is the goal:
45+3 mins: Dangerous ball into the box by Koundé but nobody could get on the end of it.
44 mins: It seemed a very dodgy call by the referee as Ruiz didn’t appear to foul Dembele outside the box and it was given, VAR intervenes and it’s reversed. Rabiot is on a yellow card and goes in for a stupid, rash challenge. Lucky boy.
43 mins: Chance for France as Barcola flicks to Rabiot who plays in Mbappé in full flight but Simon sweeps up brilliantly to clear it before Mbappé could get it.
39 mins: Spain are purring now, Maignan gives away the ball and it’s beautiful, intricate play as Rodri passes to Yamal, who flicks to Olmo, who flicks it back to Yamal and the cross is just about diverted away by Upamecano.
36 mins: Long ball from Simon to Baena and he gets in behind and gets around the keeper, misses the chance but looked like he was fouled. All academic though as he was just offside. The Atletico Madrid winger has been making intelligent runs.
Dembele drops deeper to try to influence things and finds Barcola on the wing. It’s decent play by Barcola, but hits it over under serious pressure from Rodri and Porro.
34 mins: Sloppy touch by Olise and loose pass by Barcola and it’s not going France’s way so far. Olmo tries a shot from 30 yards but blazes it well over.
29 mins: Big problem for France as centre-back Saliba is standing with the ball and then just sits down injured. Looks like he hurt his back and he limps off, Lacroix comes on to replace him.
Goal for Spain! Oyarzabal doesn’t stutter in his run-up, just belts it into the corner past Maignan.
France 0 Spain 1
Time for the hydration break.
21 mins: Penalty for Spain! Cucurella’s cross is headed up in the air by Digne who then goes to kick it and is completely unaware that Yamal is there, and kicks him in the leg. Can’t really have any mistakes, bad error by the full-back.
19 mins: Good spell for Dembele as he torments Baena on the wing, his deep cross goes to Barcola, but again the blocks are in by Spain before he can get the shot through. You can see why they have only conceded one goal in the competition so far.
16 mins: France are finding it difficult to create much so far and Mbappé drops deep to then pass it straight out to nobody for a goal kick. Cagey opening for both teams, but Spain will be the happier with how it’s going.
Bad tackle by Olise on Rodri about 40 metres from goal, studs were up, and he’s lucky enough to escape a caution.
Then the famous France quick counter. Olise to Dembele with a brilliant pass to Mbappé, who just didn’t have enough support to get a shot away from just outside the box. Great defending by Spain.
11 mins: Dreadful free-kick from Baena straight at the wall, but from the rebound, Yamal is sharp and goes down the wing and floats a cross to the back post, which is just about dealt with by France.
9 mins: There is an electricity in the stadium when France have a chance to counter and they almost release Mbappé in space, but Spain are going well and Rabiot concedes a free-kick just outside the box, fouling Olmo. A yellow card too.
6 mins: Yamal gets pushed off the ball by Rabiot and France try to counter but Ruiz holds Mbappé up. France sit back and look to counter, Barcola shows great balance to stay up under challenge and wins a corner. The corner is headed away and then Rabiot slices it out of play.
3 mins: Early possession for Spain, as you’d expect, as Rabiot plays a sloppy pass out of play to Barcola. France pressing high up, but some good moments in breaking the press from Rodri and goalkeeper Simon.
This would suggest that this is the “true” final tonight, although we know that tomorrow is going to be another level for the passion and vibes.
La Marsaillaise rings out in Dallas. Kickoff shortly.
In World Cup-adjacent news, Pico Lopes is straight back at it for Shamrock Rovers after his Cape Verde adventure (which included a clean sheet against Spain) as Rovers take on Floriana in the Champions League first round second leg. They’re two behind on aggregate, so they’ll need a big performance, that report will be on the website later.

Something will have to change tonight:
Keith Duggan writes about Lamine Yamal:
“What did you do on the day you turned 19? On Monday, Lamine Yamal’s birthday morning started like many others in his young, exultant life: on a football pitch, dozens of camera lens trained on him as Spain went through their warm-ups. Spain trained in the Cotton Bowl, the famous gridiron venue in downtown Dallas that has hosted many prodigious talents over the past 90 years.
“But the blond-tipped, braced youngster from the Balearic enclave of Rocafonda is of a different species to the precocious juvenile brilliance that has long been celebrated in US sport.
“Spanish football has watched the transformation of Argentina over the past two decades with Lionel Messi as conduit. Now, they believe they have their own gift from the planets."

The teams are out:
France: Maignan; Koundé, Saliba, Upamecano, Digne; Tchouaméni, Rabiot; Dembele, Barcola, Olise; Mbappé
Spain: Simon; Porro, Cubarsí, Laporte, Cucurella; Rodri, Ruiz, Olmo; Yamal, Oyarzabal, Baena
Biggest decisions are Tchouaméni is back from injury to replace Manu Koné for France, and Barcola after some great sub appearances, starts instead of Doué. For Spain, again Pedri is on the bench, with De la Fuente preferring Fabian Ruiz over him. Good options to have.
If anyone can beat France, it’s Spain, says Kevin Kilbane as he previews the match on the America 2026 podcast.
Listen to the full podcast here:

Confrontational Leadership - Miguel Delaney and Kevin Kilbane on the Bellingham beef, tired bodies and FIFA’s dream draw
Hello and welcome to live coverage of the first World Cup semi-final between France and Spain, which takes place in the AT&T Stadium in Dallas. These two teams met in Euro 2024 two years ago, when Spain deservedly won 2-1.
France flaunted its firepower today during its Bastille Day parade and the feeling is that their firepower up front on the football field is too much for anyone to cope with at this World Cup. Kylian Mbappé in contention for the Golden Boot with eight goals, and Michael Olise one of the main creators of the tournament. Ballon d’Or holder Ousmane Dembele have five goals too, while PSG duo Desiré Doué and Bradley Barcola are also top-class.
Recently turned 19-year-old Lamine Yamal was expected to take the tournament by storm but has played well in fits and bursts after recovering from injury at the end of his club season. Spain rarely lose and rarely concede, they have conceded only one goal in this tournament and haven’t lost an international game for a record 36 matches, coming against Colombia in March 2024. With Rodri pulling the strings, they remain a fearsome opponent. Kickoff is at 8pm.















