Benzema struck again just after halftime from Paul Pogba‘s superb pass and at that stage Portugal were heading out of the competition they won by beating France in 2016.
Ronaldo beat Hugo Lloris from the spot again on the hour, however, shortly before Pogba thumped a long-range effort against the crossbar in a match that sprung to life after a cagey start.
Portugal hung on the draw which meant they finished third in a heavyweight group with four points, behind Germany (four points) who twice came from behind to draw 2-2 with Hungary.
⏰ RESULT ⏰🇵🇹 Ronaldo hits double as Portugal go through🇫🇷 Benzema nets first goals since 2015🤔 Fair result? #EURO2020
— UEFA EURO 2020 (@EURO2020) 1624482259000
Portugal will play Belgium while France topped the group with five points to avoid a Wembley clash with England and instead will take on Switzerland.
Portugal bossed the first half and were awarded a penalty in the 27th minute after Lloris’s attempted punch wiped out Danilo. Lloris was shown a yellow card before Ronaldo smashed the penalty into the corner.
France were rattled but went in on level terms when referee Antonio Mateu Lahoz deemed that Nelson Semedo had bundled over Kylian Mbappe on the stroke of halftime.
Benzema buried the penalty and two minutes after the break was picked out by Pogba and the striker, shown to be just onside by a VAR check, slotted the ball past Rui Patricio.
The game’s third penalty, a Euros record, was awarded for a handball by Jules Kounde and Ronaldo beat Lloris again from the spot to register his fifth goal of the goal tournament.