Sagan had been second in three previous stages but had enough of a push in the final straightaway section of the 127.7-mile route into Albi, France, to claim his fourth overall Tour de France stage. He won three stages last year.
He finished a cycle length ahead of both Degenkolb and Bennati, who were in a near dead head for second. Degenkolb was given second place and Bennati third while Michal Kwiatkowski was fourth and Edvald Boasson Hagen fifth.
Sagan completed the run from Montpellier to Albi, a route that included a Category 2 climb at Col de la Croix de Mounis midway through the race, in 4 hours, 54 minutes, 12 seconds.
Daryl Impey, 12th in the stage, is still the overall leader, 3 seconds ahead of Boasson Hagen with Simon Gerrans and Michael Albasini both 5 seconds behind the leader and Kwiatkowski and Sylvain Chavanel both 6 seconds back.
The stage Saturday covers 121.2 miles from Castres to Ax 3 Domaines. There is an unclassified climb and a Category 1 climb near the end of the route.