France coach Didier Deschamps made two changes with Benjamin Pavard and Adrien Rabiot coming into the side, while Switzerland were unchanged.
Switzerland took the lead with a quarter of an hour gone when Steven Zuber floated one in from the left of the box for Haris Seferovic to head past Hugo Lloris.
In the 27th minute, Adrien Rabiot tried his luck from long-range and Switzerland's goalkeeper Yann Sommer was relieved to see it go just wide of his left-hand post.
Shortly before the interval, Antoine Griezmann's flick sent Kylian Mbappe clear down the right but he shot high and wide after being put under pressure by Remo Freuler.
The Swiss won a penalty in the 52nd minute when Pavard brought down Zuber. Ricardo Rodriguez stepped up but saw his spot-kick saved in the bottom left corner by Lloris.
Les Bleus equalised five minutes later when Benzema brought down Mbappe's pass expertly and took one more touch before finishing clinically.
Just two minutes later, the turnaround was complete as Benzema grabbed his second of the match. Griezmann's effort from an acute angle was saved by Sommer but rebounded to the far post where the Real Madrid striker was on hand to head home.
Paul Pogba then stamped his authority on the game when he curled a sublime effort into the top left-hand corner in the 75th minute.
Switzerland looked dead and buried but fought back valiantly with two late goals to take the tie to extra-time. First, Seferovic grabbed his brace when he headed home Kevin Mbabu's cross. And then with ten minutes of regular time remaining, Mario Gavranovic was played through on goal by Granit Xhaka and buried the ball into the bottom left corner.
Kingsley Coman then smashed the upright after bringing down Moussa Sissoko's ball to the far post with seconds remaining on the clock as the match went to extra-time.
The sides could not be separated in extra-time and so it went to penalties with Mbappe missing France's fifth spot-kick after the Swiss had netted all five of theirs.