The two teams could not be seperated in normal time or extra time, with the game ending 0-0 before the French triumphed 5-3 in the ensuing shoot-out.
What happened?
The first half was something of a non-event with both defences on top and neither side creating too much in the way of clear-cut chances.
Bernardo toiled away without reward, Ruben Dias kept a watchful eye on Kylian Mbappe while Joao Cancelo again impressed in both defence and attack.
France again struggled to impose their authority on proceedings – as they have done throughout the tournament – while the Portuguese lacked any real threat up front.
In fact, it wasn’t until more than an hour had passed that both teams had their best chances yet to score.
Cancelo’s delightful pass with the outside of his boot set Bruno Fernandes clear in the box but the Manchester United man snatched at his shot and failed to trouble the keeper.
Immediately after, Randal Kolo Muani looked certain to score before a magnificent last ditch lunge from Dias deflected the ball inches past the post.
Cancelo’s evening was surprisingly ended on 74 minutes when he was substituted by manager Roberto Martinez as the game ticked towards the end of normal time.
Neither the talismanic Mbappe or Cristiano Ronaldo were able to inspire their respective nations.
And so to 30 minutes of extra time - and more of the same with both defences impressing and willing to throw bodies on the line - none more so than Dias and the incredible Pepe for Portugal.
Bernardo was unable to find any pockets of space near the France box and increasingly dropped deeper to try and spark attacks
With 105 minutes played, it seemed both sides were content with the lottery of a penalty shoot-out.
There was little in the way of chance in the time that remained, and Matheus Nunes was brought on in the final minute but had no opportunity to make an impression.
With seconds to go, Bernardo teed up Nuno Mendes on a rare counter-attack, but his shot was easily saved by Mike Maignan.
The game then went to a shoot-out.
Bernardo tucked his effort away, but Joao Felix’s miss was the difference as France scored all their spot-kicks to win 5-3.
Les Bleus will now take on Rodrigo’s Spain in Munich next Tuesday with a place in the EURO 2024 final at stake.