Tadej Pogacar became the first rider in 42 years to claim a Tour de France-Giro di Lombardia double as he won the last Monument race of the season.
The 23-year-old Slovenian, riding for UAE-Emirates, became the fourth man to achieve the feat after Fausto Coppi, Eddy Merckx and Bernard Hinault.
Pogacar made his move with more than 30km to go and beat Fausto Masnada into second place in the final sprint in northern Italy.
Britain’s Adam Yates finished third.
Pogacar’s victory follows his second Tour de France win in as many years in July.
It is also his second victory of the year in one of the five prestigious one-day Monument races, after winning Liege-Bastogne-Liege in April.
On Saturday, Vincenzo Nibali, twice a Giro di Lombardia winner in the past, was the first to attack among the favourites on the ascent of Passo di Ganda, but was overtaken by Pogacar.
Masnada powered away from the chasing group to join Pogacar at the front, but the Slovenian rider was too fast in the final sprint.
Overall standings
1. Tadej Pogacar (Slo/UAE Team Emirates), 6hrs 1min 39secs
2. Fauso Masnada (Ita/Deceuninck-QuickStep) same time
3. Adam Yates (GB/Ineos Grenadiers) +51secs
4. Primoz Roglic (Slo/Jumbo-Visma) same time
5. Alejandro Valverde (Spa/Movistar Team)
6. Julian Alaphilippe (Fra/Deceuninck-QuickStep)
7. David Gaudu (Fra/Groupama-FDJ)
8. Romain Bardet (Fra/Team DSM)
9. Michael Woods (Can/Israel Start-Up Nation)
10. Sergio Higuita (Col/EF Education-Nippo) +2min 25secs