France recovered from a disastrous start to beat the Republic of Ireland 2-1 with a splendid Antoine Griezmann brace.
Les Bleus will face either England or Iceland in the quarter-final, but Adil Rami and N’Golo Kante will be suspended.
The hosts had been unconvincing thus far in the tournament, but Didier Deschamps returned to his favoured side after resting several stars against Switzerland. Ireland qualified in third place by beating a reshuffled Italy 1-0 and had Stephen Ward available after shaking off an ankle problem.
It was the best possible start for Ireland and a nightmare for Paul Pogba, who clumsily walked into the back of Shane Long within two minutes. Robbie Brady, who scored the late header to beat Italy, stepped up and converted the penalty in off the post. It was the fastest spot-kick in European Championship history.
Les Bleus poured forward to get back into it, Griezmann nodding over from a Pogba cross and a series of attempts straight at the goalkeeper, but Ireland almost doubled their lead with Hugo Lloris palming away a Daryl Murphy attempt.
Pogba tested Darren Randolph with a free kick from distance, then Shane Duffy nodded a free kick wide under pressure from Pogba.
Towards half-time it became a siege, as Dimitri Payet had two shots charged down in quick succession and Griezmann the follow-up blocked too.
Kingsley Coman was introduced and Payet’s free kick was flicked on for Laurent Koscielny’s diving header inches wide at the back stick.
It remained open, as Lloris was at full stretch to push a James McClean cross away from Long, then Payet’s angled drive flashed across the face of goal and Randolph’s gloves were stung by a Blaise Matuidi screamer.
The French pressure finally paid off when Bakary Sagna whipped in a cross from the right for Griezmann’s powerful free header from 12 yards.
Their tails were up and moments later Griezmann was again totally unmarked for his second. Two Irish defenders went with Olivier Giroud for the header down and left Griezmann alone to drill past Randolph.
Ireland fell apart and Shane Duffy was shown a straight red card as he brought down Griezmann when clear on goal on the very edge of the box. Due to the new ‘double jeopardy’ rules, it wouldn’t have been a dismissal if the foul had been inside the penalty area.
Andre-Pierre Gignac came off the bench and his curler smacked against the crossbar, while Griezmann came flying in just unable to reach a cross from six yards.
Gignac and Jonathan Walters fired off target, but it was all France in the second half and in stoppages Randolph stuck out a leg to deny Griezmann his hat-trick.
France 2-1 R Ireland
Brady pen 3 (I), Griezmann 58, 61 (F)
France: Lloris; Sagna, Rami, Koscielny, Evra; Pogba, Kanté (Coman 46) (Sissoko 93), Matuidi; Griezmann, Giroud (Gignac 73), Payet
Republic of Ireland: Randolph; Coleman, Keogh, Duffy, Brady; Hendrick, McCarthy (Hoolahan 71), McClean (O’Shea 68), Ward, Murphy (Walters 65); Long
Sent off: Duffy 66 (I)