Cristiano Ronaldo equalled Ali Daei's international goalscoring record as France and Portugal played out a 2-2 draw to ensure both sides progressed through to the Euro 2020 knockout rounds.
Portugal hit the front with half an hour gone as Ronaldo slotted home from the spot after Hugo Lloris conceded a penalty for clattering into Danilo Pereira when attempting to punch the ball clear.
France hit back on the stroke of half time as the referee pointed to the penalty spot for a second time. Nelson Semedo was adjudged to have brought down Kylian Mbappe in the area - though it looked very soft - and Karim Benzema made no mistake with the resulting spot kick.
Didier Deschamps' men took the lead early in the second half as Paul Pogba played a brilliant through ball to Benzema who coolly applied the finish. The goal was originally chalked off for offside but after a quick VAR check the French fans' celebrations could begin.
Penalty number three of the night was up next as Jules Kounde was adjudged to have handled in the area, allowing Ronaldo the chance to equal Daei's all-time international goalscoring record - which he never looked like not doing.
Both sides contemplated pushing for a winner but there was never any real urgency as the point was enough to secure their progression through to the next round.
Here's your Portugal and France player ratings...
PORTUGAL PLAYER RATINGS
1. Goalkeeper & defenders
Rui Patricio (GK) - 7/10 - Produced a good save early on to keep Mbappe out but nothing he could do about Benzema's penalty. Pulled off two superb saves in the second half to deny Pogba and then Griezmann.
Nelson Semedo (RB) - 7/10 - Very unfortunate to concede a penalty for a challenge on Mbappe which looked little more than a body check. Played really well on the whole and was unlucky with the penalty call.
Pepe (CB) - 6/10 - Did well not to punch the referee after looking like he was about to explode following the awarding of France's penalty. Solid performance otherwise.
Ruben Dias (CB) - 5/10 - Looked to be a little off the pace and was lucky not to be caught out by the pace of Mbappe more often.
Raphael Guerreiro (LB) - 5/10 - Tried his best to get forward - and there was plenty of space to move into - but he proved ineffective whenever he ventured into the final third.
Joao Moutinho (CM) - 6/10 - Always looking to spread the play and shoot on sight but his range was off and he fired a couple of efforts well wide.
Danilo Pereira (CM) - 7/10 - Busy in the midfield and did well to break up play. Withdrawn at half time, possibly because Lloris tried to knock him out 20 minutes earlier.
Renato Sanches (CM) - 8/10 - Looked full of confidence and repaid his manager's faith with a really good performance in midfield.
Bernardo Silva (RW) - 7/10 - Had Lucas Hernandez on toast and ran rings around him for most of the game.
Cristiano Ronaldo (ST) - 8/10 - The coolest man in the stadium as he slotted both penalties home. An absolute phenomenon as he becomes the joint-highest international goalscorer ever.
Diogo Jota (LW) - 5/10 - The quietest of the Portugal frontline. Struggled to get a foot on the ball and was anonymous for much of the contest.
Joao Palhinha (CM) - 6/10
Bruno Fernandes (CM) - 5/10
Ruben Neves (CM) - 6/10
Diogo Dalot (RB) - 6/10
Sergio Oliveira (CM) - N/A
FRANCE PLAYER RATINGS
5. Goalkeeper & defenders
Hugo Lloris (GK) - 5/10 - Very unlucky to have conceded a penalty after deciding to punch Danilo - the game's gone soft.
Jules Kounde (RB) - 6/10 - Asked to slot in at right back and did well considering. Guilty of conceding the game's third penalty but by this point the referee was dishing them out like Christmas cards.
Raphael Varane (CB) - 5/10 - Made a mess of a defensive header and almost handed Ronaldo a great chance to open the scoring. Not the kind of assured performance we've come to expect from him.
Presnel Kimpembe (CB) - 7/10 - Looked solid considering his centre-back partner had a couple of shaky moments. Distributed the ball well and can be pleased with his display.
Lucas Hernandez (LB) - 4/10 - Couldn't keep hold of Bernardo Silva as the Manchester City man ran riot down the Portugal right. Withdraw at half time after picking up a booking in the first 45 minutes.
N'Golo Kante (DM) - 6/10 - Wasn't as energetic as we're used to seeing but was still effective and helped break up play.
Paul Pogba (CM) - 8/10 - Nice chip into the penalty area in the build-up to the awarding of France's penalty. Pulled off one of the best assists you're likely to see all tournament for France's second.
Corentin Tolisso (CM) - 6/10 - Asked to move back into right-back in the second half as Deschamps was forced to patch his side up. Looked solid enough in midfield and defence.
Antoine Griezmann (RW) - 6/10 - Picked up an early booking for a late challenge. Played just off the frontman and did a good job of dropping deep into midfield to disrupt play.
Karim Benzema (ST) - 8/10 - Slotted home his penalty very well and then produced a clinical finish to double his and France's tally for the night in the second half.
Kylian Mbappe (LW) - 6/10 - Went down very easily for the penalty but you can't really blame him if the ref is going to give soft decisions like that.
Lucas Digne (LB) - N/A - Came on at half time and lasted about four minutes before picking up an injury.
Adrien Rabiot (LB) - 6/10
Kingsley Coman (CM) - 5/10
Moussa Sissoko (CM) - N/A