All the action from the Group B match in Coimbra.
Goalflashes and major incidents:
FULL-TIME: France are into the quarter-finals as group winners after making heavy weather of beating Switzerland. But questions have been raised about their defending and the make-up of their attack.
England, who beat Croatia 4-2 in Lisbon in the other Group B game, are also through and will face hosts Portugal.
90 mins: Cabanas heads over in the last significant piece of action, but appears to know little about it.
84 mins: GOAL - Switzerland 1-3 France:
A moment of brilliance from Henry sees him weave his way through and France can start turning their thoughts towards Greece.
83 mins: Henry misses another good heading opportunity, while Vonlanthen fires straight at Barthez from distance at the other end. Could there be a final twist in the Group B saga?
79 mins: Zidane's magic from free-kicks deserts him after Pires is fouled by Henchoz, who has barely put a foot right. Frank Lampard scores a fourth for England but it will not affect the standings unless the Swiss equalise.
76 mins: GOAL - Switzerland 1-2 France:
Saha's first touch, a flick-on, sets up Henry to open his Euro 2004 account and make it 2-1. France are back in control of the group, while Croatia have pulled one back in Lisbon.
75 mins: Huggel, who has done little since replacing Hakan Yakin, is booked for a foul on Pires. Saha comes on for the ineffectual Trezeguet.
71 mins: Pires goes on a great run down the middle but just fails to break into the box. With Rooney on target again in the other game, France need a goal to avoid a quarter-final with Portugal.
66 mins: Wicky is booked for a crude challenge on Gallas, who looks to have injured his ankle. The Swiss are proving difficult opponents and the French are strangely lacking in urgency.
62 mins: Pires creates some space for himself and curls a shot over the bar from the edge of the area.
60 mins: A strange decision sees Hakan Yakin - Switzerland's most dangerous player - replaced by Huggel. Hakan makes his feelings clear by going straight down the tunnel.
56 mins: Trezeguet is played in by Henry but he cannot control the ball properly and Stiel is relieved as the shot is off target.
53 mins: Murat Yakin gets on the end of a free-kick from his brother Hakan but his header floats wide with the French defence again looking uncomfortable.
51 mins: Henry bursts into the area again and this time he claims he has been impeded but play is waved on.
46 mins: The second half kicks off earlier than the one in Lisbon, with Gallas coming on for Sagnol. Henry goes down in the area immediately but is booked for diving even though he makes no appeal for a penalty.
HALF-TIME: France have missed a host of chances and look suspect at the back themselves. The lack of pace in particular has been exposed. But if results stay the same they will still go through in second place.
45 mins: Henry fires straight at Stiel again. The players come off for the interval with England - thanks to goals from Paul Scholes and Wayne Rooney - now in control of the group.
44 mins: Henry produces another glaring miss when he heads an inviting cross well wide. The Arsenal striker appears well below his lethal best.
43 mins: A quiet spell ends with Hakan Yakin becoming the first player to be booked for a tug on Pires.
31 mins: Henry's pass finds Trezeguet running in on goal but Stiel charges out and clears the danger.
26 mins: GOAL - Switzerland 1-1 France:
Vonlanthen pounces on a defensive blunder to fire past Barthez and become the youngest scorer in European Championship history. The Swiss are level against the run of play but, as things stand, France are still heading for the last eight as group winners.
25 mins: Henry heads over from close in when a free-kick from Sagnol finds him completely unmarked. An amazing miss.
23 mins: Lizarazu's volley from another corner is deflected over. France have stepped up the pace since the scare in their penalty area.
20 mins: GOAL - Switzerland 0-1 France:
Play switches straight to the other end and Zidane heads in a Pires corner after Henry's free-kick is deflected over. As things stand France look set to be going through as group winners, with Croatia joining them in the quarter-finals.
19 mins: Great play from Cabanas presents Hakan Yakin with a superb chance but he loses control of the ball. The Swiss claim a penalty but referee Michel waves play on.
16 mins: A good run from Lizarazu culminates in the left-back firing through a crowd of players but Stiel saves comfortably.
15 mins: A handball by Thuram gives Switzerland a free-kick in a central position just outside the area and Barthez produces a fine save from Hakan Yakin's shot to tip the ball over.
12 mins: Henry gets into a good position just inside the box but his cross is poorly directed and goes harmlessly wide.
9 mins: Hakan Yakin gets in front of his marker and puts a cross from Gygax wide. Switzerland are finally in this game.
7 mins: Lizarazu fires in a dangerous cross after more good play from Pires but no-one can get on the end of it.
3 mins: Pires is causing havoc already down the left and his ball finds Zidane in space but, amazingly, he makes a mess of his shot from just inside the box.
1 min: France go straight on the attack as a good ball from Henry finds strike partner Trezeguet and his shot is blocked by Spycher.
1945 BST: France kick-off to get this Group B match underway.
With France strong favourites to go through as Group B winners and Switzerland seemingly on their way out, there appeared to be no real edge before the game kicked off.
Fans from both countries mingled happily and enjoyed the sunshine in the serene
university town of Coimbra.
Supporters took the opportunity to wander around the ancient buildings and enjoy some sightseeing before the match.
But some got to the ground early and most expected France to clinch the win which would set up a quarter-final with Greece.
Switzerland make five changes to their team with Johann Vonlanthen playing as a lone striker, with Alexander Frei suspended and Stephane Chapuisat left out.
Defender Bernt Haas is also ruled out through suspension, meaning a chance for Stephane Henchoz, while Ricardo Cabanas, Johann Vogel and Daniel Gygax come into a five-man midfield.
France recall fit-again Claude Makelele and Robert Pires in midfield, meaning no starting places for Olivier Dacourt and Sylvain Wiltord.
Willy Sagnol replaces William Gallas at right-back and Bixente Lizerazu slots in at left-back. Mikael Silvestre moves into the centre of defence, with Marcel Desailly dropping out.
Switzerland: Stiel, Henchoz, Muller, Murat Yakin, Spycher, Wicky, Cabanas, Vogel, Hakan Yakin, Gygax, Vonlanthen. Subs: Zuberbuhler, Roth, Berner, Chapuisat, Zwyssig, Magnin, Celestini, Huggel, Barnetta, Rama.
France: Barthez, Sagnol, Thuram, Silvestre, Lizarazu, Vieira, Makelele, Pires, Zidane, Henry, Trezeguet. Subs: Boumsong, Coupet, Dacourt, Desailly, Gallas, Govou, Landreau, Marlet, Pedretti, Rothen, Saha, Wiltord.
Referee: Lubos Michel (Slovakia)