Didier Deschamps' side are still to score a goal from open play in Germany, but they are into the semi-finals after a penalty shootout victory
France continue to struggle when it comes to their attacking play, but Les Bleus march on at Euro 2024 after they saw off Portugal on penalties in the quarter-finals after playing out a dull 0-0 draw in Hamburg on Friday.
The first half was played at walking pace for long periods, with the only real effort on goal coming from Theo Hernandez, who stung the palms of Diogo Costa from 20 yards. At the other end, Rafael Leao threatened plenty down the left-hand side, but couldn't create any clear-cut chances.
It took until around the 55th minute for the game to liven up, as Mike Maignan was forced into fine reaction saves from Bruno Fernandes and Vitinha, while at the other end Ruben Dias blocked well from Randal Kolo Muani while Eduardo Camavinga dragged a presentable opportunity wide.
With neither side able to break the deadlock in 90 minutes, the game moved into extra-time, where Cristiano Ronaldo fired over from close-range while Kylian Mbappe was surprisingly substituted midway through the additional 30 minutes. In the end, it went to penalties, and while France scored each of their first five spot-kicks, Joao Felix hit the post for Portugal, which proved to be difference in the end.
GOAL rates France's players from Volksparkstadion as they set up a semi-final meeting with Spain…
Getty ImagesGoalkeeper & Defence
Mike Maignan (7/10):
Didn't have all that much to do for the first hour, but showed excellent reactions to keep out Fernandes and Vitinha in quick succession when he was eventually called upon.
Jules Kounde (5/10):
Was locked in a running battle with Leao for much of the game that the Portugal winger generally won. Did carry the ball out of defence pretty well, though.
Dayot Upamecano (7/10):
Looked a solid presence at the heart of the France defence. Came across to support Kounde as much as he could up against Leao, while he denied the AC Milan winger with a fine block in extra-time.
William Saliba (8/10):
Another stellar display from the tournament's best centre-back. Never looked ruffled despite having to make some key interventions, including an outstanding block to deny Bernardo.
Theo Hernandez (6/10):
As expected got forward well to try and combine with Mbappe. Final ball wasn't always there, while he defended decently enough. Kept his cool for the winning penalty.
AdvertisementGetty ImagesMidfield
Aurelien Tchouameni (6/10):
Enjoyed an excellent first half as he looked to spray passes from the base of the France midfield while putting out fires in front of the defence. Was a little sloppier after the break, however.
N'Golo Kante (6/10):
Provided limitless energy in midfield and combined well with France's more creative players.
Eduardo Camavinga (6/10):
In for the suspended Rabiot and did most of his good work without the ball, with his last-gasp challenge on Leao early in the second half particularly eye-catching. Hit and miss with the ball, however, as he wasted a great chance midway through the second half.
Antoine Griezmann (2/10):
Deployed at the tip of France's midfield diamond, but after a bright start, looked a shadow of himself until he was replaced after 65 minutes. His disappointing tournament continues.
Getty ImagesAttack
Randal Kolo Muani (3/10):
Never looked confident in his ability to trouble the Portugal defence in a pretty timid display. Even his shot that was heroically blocked by Dias looked like it may have gone wide anyway.
Kylian Mbappe (4/10):
Not himself at all as struggled to get into the game and misplaced a number of passes. Had a couple of bursts of pace that almost caused panic and two shots that went down Costa's throat. Looks inhibited by his facial injury, which likely led to his eventual substitution.
Getty ImagesSubs & Manager
Ousmane Dembele (6/10):
Brought speed and directness to the France attack after replacing Griezmann. Went on a couple of electric dribbles, though his decision-making remains confusing while his shooting is anything but consistent.
Marcus Thuram (4/10):
On for Kolo Muani late in normal time but didn't really improve matters. Pepe being able to keep up with him just minutes after he was introduced summed up the Inter man's performance.
Youssouf Fofana (5/10):
On for Camavinga at the start of extra-time but didn't have much effect on the game.
Bradley Barcola (6/10):
Replaced Mbappe for the second half of extra-time and was neat and tidy.
Didier Deschamps (4/10):
Another change of system, but still the France coach cannot seem to get a tune of his attacking players. Seems to be setting up his team not to lose, which is criminal given the talent he has available to him, even if it continues to pay off.