Alberto Contador broke away less than one kilometre from the finish to win the Milan-Turin one-day race on top of the Superga hill in Turin.
The 29-year-old, who won the Vuelta a Espana earlier this month in his first major race since returning from a doping ban, responded to an attack by Diego Ulissi (Lampre-ISD) in the final two kilometres and broke clear to win on the steep finish to the summit of Superga.
"It wasn't easy to race again after a very tough Tour of Spain, but now I know that I still have some energy left in my legs," said Contador, who also raced unsuccessfully in both the world time-trial and world road race last week.
Contador, who will compete in one more race this season, this weekend's Giro di Lombardia, dedicated his victory to Spanish compatriot Victor Cabedo, who died in an accident while training last week.
"I dedicate my win to all of my teammates and to someone who has been in my thoughts since the World Championships, Victor Cabedo," he said.
"Wherever he may be, this win is for him."
Fredrik Kessiakoff, of the Astana team, came third in front of Joaquim Rodriguez (Katusha).
Federico Rocchetti (Utensilnord Named) and Alfredo Balloni (Farnese Vini-Selle Italia) broke away early to a lead of over eight minutes after 50km.
That gap closed steadily until Balloni decided to make a run for the finish himself with 25km to go.
Eros Capecchi (Liquigas-Cannondale) and Przemyslaw Niemiec (Lampre-ISD) bridged to the fading leaders and a narrow lead on the group behind.
That group which included Contador, Ulissi and Kessiakoff then crossed to the leading pair on Superga before the race winner made his move for the victory with only 800 metres left.
The Milan-Turin race is Italy's oldest cycling race, having first been staged in 1876. However, before this year it had not been held since 2007.
Commentary in Italian
Classification: 193.5km, Milan to Torino
1 Alberto Contador (ESP) Saxo Bank-Tinkoff Bank 4hr 32min 12sec
2 Diego Ulissi (ITA) Lampre-ISD 0:00:15
3 Fredrik Kessiakoff (SWE) Astana 0:00:24
4 Joaquin Rodriguez (ESP) Katusha 0:00:36
5 Carlos Alberto Betancur (COL) Acqua & Sapone
6 Fabio Taborre (ItTA) Acqua & Sapone 0:00:43
7 Domenico Pozzovivo (ITA) Colnago-CSF Inox 0:00:45
8 Chris Anker Sorensen (DEN) Saxo Bank-Tinkoff Bank
9 Vincenzo Nibali (ITA) Liquigas-Cannondale
10 Franco Pellizotti (ITA) Androni Giocattoli 0:00:53