The Cannondale rider from Slovakia beat the Italians Diego Ulissi and Rinaldo Nocentini in a small group sprint at the end of the 183 kilometre course.
It was a third victory this season for the 23-year-old, following two wins in Oman earlier in the year.
An early five-man break featuring Taylor Phinney (BMC), Stefano Agostini (Cannondale), Maxim Belkov (Katusha), Alessandro Proni (Vini Fantini Selle Italia) and Pedro Paulinho (Ceramica Flaminia) built up a 12:15 lead after 64km.
But that advantage was whittled down as the peloton tackled a circuit that features six climbs up Monte Pitoro, a 1.9km ascent.
With 15km to go the riders were all back together and an elite 12-man group that included Vicenzo Nibali, Michele Scarponi and Denis Menchov formed on the final ascent of the 7% climb.
But the climbers were unable to shed Sagan, who claimed victory in the sprint with Matthew Busche and Mauro Santambrogio completing the top five.
“It was a win that had a great contribution from my team-mates,” said Sagan, who had Moreno Moser for company at the finish.
“I could feel my condition improve lap after lap, and I took some morale from that. When it all came back together on the last climb, Moser was exceptional in closing down the attacks and bringing it to a group finish.
“At that point, it came down to me to bring out my best and win.”