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 Slovakian, 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 title of the year out of the five prestigious one-day Monument races, after winning the 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 Slovakian edged to victory.
1. Tadej Pogacar (Slo/UAE), 6hrs 1min 39secs
2. Fauso Masnada (Ita/DEC) same time
3. Adam Yates (GB/Ineos) +51secs
4. Primoz Roglic (Slo/JUM) same time
5. Alejandro Valverde (Spa/MOV)
6. Julian Alaphilippe (Fra/DEC)
7. David Gaudu (Fra/GFJ)
8. Romain Bardet (Fra/DSM)
9. Michael Woods (Can/ISR)
10. Sergio Higuita (Col/EF1) +2min 25secs