Arnaud Démare finished off a perfect lead-out with a fast finish to win Milano - Torino 2020.
The French sprinter was dropped off on the finishing straight by his Groupama-FDJ team-mates and followed Peter Sagan's wheel before powering past, also managing to hold off Caleb Ewan's advances.
Wout van Aert demoted Sagan into fourth with a good sprint, while Nacer Bouhanni (Arkéa-Samsic), Fernando Gaviria (UAE Team Emirates) and Ben Swift (Ineos) all having to settle for top 10 placings.
Sam Bennett (Deceuninck - Quick-Step) failed to feature in the sprint, his team-mate Yves Lampaert having been brought down in a crash in the closing kilometres as the peloton tried to navigate road furniture on the run-in.
This sprinter's edition of the Italian one-day race provided preparation ahead of the first Monument of the season on Saturday, Milan - San Remo.
How it happened
This year's edition of Milano - Torino was a flat affair, route changes doing away with the Superga Hill as organisers looked to re-fit the race as preparation for the sprinters ahead of Milan - San Remo, which takes places on Saturday.
Six riders got themselves into the break, Manuele Boaro (Astana) the most experienced amongst them, accompanied by Gijs Van Hoecke (CCC), fresh from signing with Ag2r La Mondiale for next year, Davide Villella (Movistar), Andrea Garosio (Vini Zabù-KTM) Alessandro Tonelli (Bardiani-CSF-Faizanè) and Samuele Rivi (Italy).
The break took their lead out to above the five-minute mark as the riders began the first short bit of climbing for the day.
Passed the 100km mark, the gap was starting to come down slightly, coming down to two and a half minutes with 50km to go, the sprinters' teams starting to increase the pace.
Deceuninck - Quick-Step were present at the front, looking to set things up for Sam Bennett, the Irishman having already returned to winning ways following the coronavirus break at the Vuelta a Burgos last week.
Bora-Hansgrohe were also up there, shepherding Peter Sagan through the road furniture and towards Turin, speeds edging above 50km/h.
With 18km remaining, the gap to the breakaway was under a minute. Sensing the life was going out of the move, Rivi attacked, Boaro getting on his wheel and dispensing with their former accomplices.
Soon the breakaway remnants were swept up, save for the two up front who still held a 37-second lead heading into the final 13km.
Boaro then attacked Rivi as the peloton closed to within half a minute, launching up the road as his younger countryman accepted his fate.
The Astana man still had 25 seconds of breathing space heading into the last 10km, but the peloton were racing now, sprint teams assembling at the front.
A huge crash disrupted the chase with under 9km to go, as one rider clipped some road furniture in the middle of the road, causing a massive pile-up behind him. Deceuninck - Quick-Step's Yves Lampaert was in severe pain lying by the side of his team car, with Ineos' Salvatore Puccio also on the deck.
The bunch had split as Boaro was brought to heel, riders desperately chasing back on to the front group.
Lotto-Soudal were on the front with 5km remaining, ready to launch Caleb Ewan, with Bora-Hansgrohe the second team in line.
The German team took over leading the reduced bunch into the final 3km, riders looking around to check who was still present.
Under the flamme rouge and it was Groupama-FDJ driving the pace, all the big names seeming to have survived the crash.
The French team were still on the front around the final bend, as Peter Sagan unleashed his sprint, Arnaud Démare following, as well as Caleb Ewan.
With a few hundred metres still go, the Slovakian started fading as the Frenchman continued driving for the line, holding off Ewan to take the victory. Wout van Aert also finished fast, pipping Sagan to third place.
Milano-Torino 2020: Mesero to Stupinigi (198km)
1. Arnaud Démare (Fra) Groupama-FDJ, in 4-18-57
2. Caleb Ewan (Aus) Lotto-Soudal, at same time
3. Wout van Aert (Bel) Jumbo-Visma
4. Peter Sagan (Svk) Bora-Hansgrohe
5. Danny van Poppel (Ned) Circus - Wanty Gobert
6. Nacer Bouhanni (Fra) Arkéa-Samsic
7. Fernando Gaviria (Col) UAE Team Emirates
8. Manuel Belletti (Ita) Androni Giocattoli-Sidermic
9. Dion Smith (NZl) Mitchelton-Scott
10. Ben Swift (GBr) Ineos, all at same time
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1