The 22-year-old Colombian beat Cannoldale-Drapac pair, Michael Woods and Rigoberto Uran at the end of the 186km race from San Giuliano Milanes.
"It was a very fast race with a lot of work by Alessandro Vanotti, Dario Cataldo and the rest of the Astana guys," Lopez said.
"On the first climb to Superga, we decided to try one after the other. I managed to create a bit of a gap and it worked out, but if it wasn’t going to work, we had alternatives.
"Thanks to the confidence given to me by the team this year I managed to achieve a big result [Tour de Suisse overall winner] but I was unlucky at the Vuelta so I’m yet to ride a Grand Tour.
"I don’t know my race program for next year yet: either I’ll ride the Giro d’Italia with Fabio Aru to help him and try to get the white jersey, or I’ll go to another Grand Tour as a captain but without pressure for the overall classification."