Sagan won after a lone run on the last two kilometres, giving him three second advantage over a group of 24 cyclists.
Australian Michael Matthews won the silver medal, and Lithuanian Ramūnas Navardauskas took the bronze.
The run of the Slovakian cyclist, Kwiatkowski's peer and rival form junior races, was reminiscent of the Polish cyclist's run during last year's championships in Ponferrada. He waited for the right moment to gain advantage and won decisively.
The results of the men's elite race (261.4 km):
1. Peter Sagan (Slovakia) 6:14.37
2. Michael Matthews (Australia) + 3 s
3. Ramūnas Navardauskas (Lithuania)
4. Alexander Kristoff (Norway)
5. Alejandro Valverde (Spain)
6. Simon Gerrans (Australia)
7. Tony Gallopin (France)
8. Michał Kwiatkowski (Poland)
9. Rui Costa (Portugal)
10.Philippe Gilbert (Belgium) same time.