Three penalties in Budapest as both sides qualify on dramatic night of football in Group F.
A penalty in the second-half helped Portugal into the knock-out phase in a game constantly on the edge. They now have a chance of retaining the title won in France five years ago.
Les Blues had already qualified before the game, but the point ensured they finished top of the group but Didier Deschamps team will be annoyed they failed to win at the end.
Portugal dropped Bruno Fernandes and William Carvalho from the Germany loss in favour of Joao Moutinho and Renato Sanches. France also made some changes. Benjamin Pavard was on a yellow card, so he was rested; Jules Kounde replaced him. Lucas Hernandez and Corentin Tolisso also started instead of Lucas Digne and Adrien Rabiot.
It was a frantic start from both sides as plenty of tackles came in. France probably had the better of the play as Paul Pogba set out to find his range. Tolisso raced through onto a pass before Rui Patricio came out to deny him.
He fed Kylian Mbappe a few minutes later before the danger was snuffed out again. The two combined once more only to see Patricio pull off an important save. Portugal were doing their best to supply Cristiano Ronaldo but he was finding the going tough early on.
The lead came out of the blue though. Joao Moutinho clipped a free into the area to attack. Hugo Lloris charged out to punch it away but only succeeded in connecting with the head of Danilo Periera. The midfielder went down, and referee Antonio Mateu Lahoz pointed to the spot.
Despite French protests, Ronaldo was clinical with his effort from 12 yards.
Portugal seemed to have wrestled control of the game and their destiny at that point. The likes of Renato Sanches and Moutinho were upstaging their opponents in midfield and Bernardo Silva finding space to feed the attackers.
As they looked to be going into the break all square, the French drew themselves level. Pogba played the ball forward for Mbappe to chase on to. He bumped into the shoulder of Nelsen Semedo and went down just inside the area. It was Portugal’s turn to protest but to no avail.
Karim Benzema took the responsibility to get his first in the competition.
France came out straight away with a renewed vigour and found themselves in front just after the break. Pogba played another great ball through the defence and Benzema slotted into the bottom corner. Initially ruled offside, a VAR check confirmed he was level with the last player. Demonstrating his worth to this French side.
Deschamps’ men looked to be the side in control, but Portugal found themselves level once more. Ronaldo took on Jules Kounde on the edge of the area. A rebound saw the ball hit the arm of the young full-back and the Spanish ref pointed to the spot for the third time. Ronaldo held his nerve to hammer it past Lloris once more.
France came again as Portugal began to drop deeper. Sanches came to the rescue in his own area to win the ball away from Antoine Greizmann.
Patricio was the man getting the plaudits not long after. Pogba shifted the ball onto his left-foot before unleashing a fierce curling drive toward the top corner. The ‘keeper was just about able to tip it onto the woodwork. He reacted quickly then as Greizmann attempted to net from the rebound.
Nerves were beginning to kick in for both as both sides realised what was at stake. A mistake that this point could have been huge in the context of the group and the tournament. In Munich, Germany had come from behind to draw 2-2 with Hungary.
There was relief for both sides at the end as they emerged from the ‘group of death’. Portugal have a stiff challenge as they take on Belgium on Sunday. France’s reward for finishing top is a date next Monday with Switzerland. No second-chances now.
Portugal: Rui Patricio; Raphael Guerreiro, Rúben Dias, Kepler de Lima Ferreira (Pepe), Nelson Semedo (Diogo Dalot 78); Joao Moutinho (Rúben Neves 72), Danilo (Joao Palhinha 46), Renato Sanches (Sergio Oliveira 86); Diogo Jota, Cristiano Ronaldo (c), Bernardo Silva (Bruno Fernandes 72).
Subs not used: Anthony Lopes, José Fonte, Joao Felix, William Carvalho, Rui Silva, André Silva, Rafa Silva.
France: Hugo Lloris (c); Jules Koundé, Presnel Kimpembe, Lucas Hernández (Lucas Digne 46), Raphael Varane; N'Golo Kanté, Paul Pogba, Corentin Tolisso (Kingsley Coman 65); Antoine Griezmann (Moussa Sissoko 86), Karim Benzema, Kylian Mbappé.
Subs not used: Clément Lenglet, Thomas Lemar, Olivier Giroud, Wissam Ben Yedder, Mike Maignan, Steve Mandanda, Benjamin Pavard, Kurt Zouma.
Booked: Hugo Lloris (27) ,Antoine Griezmann (38) ,Lucas Hernández (36) Presnel Kimpembe (82).
Referee: Antonio Mateu Lohoz (Spain)
extratime.com Player of the Match: Paul Pogba (France)