The green jersey holder, who also took the first and third stages, pipped Germany’s Andre Greipel – winner on the two previous days – to achieve a spectacular treble at 22 years old.
Australian Matt Goss was third while Swiss Fabian Cancellara, who finished in the leading group of a split bunch, retained his overall leader’s yellow jersey.
While world champion Mark Cavendish was held up by a crash and was not part of the bunch sprint, his Team Sky leader Bradley Wiggins stayed out of trouble and remained in second spot overall, seven seconds adrift.
As in previous stages, several crashes took place in the peloton and the toll was high for some teams, especially Garmin-Sharp.
The American outfit lost Tom Danielson, forced to give up after a chaotic pile-up 26 km from the line, along with Italian Davide Vigano and Spaniard Mikel Astarloza.
Garmin leader Ryder Hesjedal, also hurt in the same crash along with team mate Johan Vansummeren, was seriously delayed and the Giro d’Italia champion finished several minutes behind Sagan.
Other Tour contenders such as Luxembourg’s Frank Schleck, Spaniard Alejandro Valverde, Dutchman Robert Gesink and Frenchman Pierre Rolland hit the tarmac and lost precious time before Saturday’s first mountain stage to La Planche des Belles Filles.
The 199-km seventh stage starts from Tomblaine, a suburb of Metz.
(Editing By Alison Wildey)