Sagan clinched victory in a breathless sprint in Trimbach to seal his third victory in four stages in what is becoming a memorable race for him.
From an initial peloton of 40-50 riders, Sagan burst from the pack to pip his rivals in a dramatic finale in the stage from Aarberg.
Jose Rojas finished in second place with Michael Albasini in third, both hot on the heels of the Slovak.
Rui Costa leads the general classification from Frank Schleck and Roman Kreuziger.
This week so far has seen a distinguished performance from Sagan after previous victories in the first stage in Lugano and the third stage in Aarberg.