Only a couple of goals by the Swiss in the last ten minutes saved the side from complete humiliation as France moved to almost certain promotion from Group E into the cup's final 16.
In the dying minutes of the game, French forward Karim Benzema put the ball in the back of the net for what would have been his second goal, but it came just after the final whistle.
After more than holding their own in the first 15 minutes of the game, Switzerland collapsed after France scored two quick goals a minute apart.
Arsenal striker Olivier Giroud headed the ball past Swiss goalie Diego Benaglio in the 17th minute.
Then Blaise Matuidi made it 2-0 in the 18th minute with a goal Benaglio, who wasn't covering his post, should have stopped.
The Swiss goalie made up for the error by saving a penalty shot from Real Madrid's Benzema at the 32-minute, with Yohan Cabaye hitting the crossbar with a volley off the rebound.
Switzerland never really recovered, making errors that the French side capitalized on.
At the 40-minute mark, the Swiss lost a corner opportunity and the French launched a lightning counter-attack.
After two passes down the length of the field, Mathieu Valbuena made it 3-0 for France.
In the second half, Benzema scored to put the French up 4-0 against a porous Swiss defence, kicking the ball between goalie Benaglio's legs.
Then in the 77th minute, Moussan Sissoko potted France's fifth goal, making it 5-0.
Switzerland's Blerim Dzemali replied with a goal on a free kick, low and in the corner, in the 82nd minute.
Then fellow countryman Granit Zhaka added a second goal with a volley in the 87th minute.
But Switzerland will be asking a lot of questions in the runup to Wednesday's game against Honduras.
The Swiss, who have not beaten France since 1992, may now need to beat Honduras to qualify for the last 16.
They beat Ecuador 2-1 in their opener.
Honduras was playing Ecuador in a later match on Friday.