Manuele Boaro had been leading as the peloton entered the closing stages of the semi-classic when a huge crash led to a chaotic finish.
Peter Sagan opened the sprint but fell away and finished fourth, with Demare piloted by his Groupama-FDJ team-mates across the finish line.
Milano - Torino
Watch Arnaud Demare sprint to Milano-Torino victory
05/08/2020 AT 16:18
Caleb Ewan finished second and Wout van Aert completed the podium spots.
"The calendar was a bit thrown out by the current situation, but it's good to be racing again and I had a very good return to competition at the Vuelta a Burgos," Demare said. "The team was very good, and we knew today was a good chance for us.
"We really know one another very well, and that's a good thing. We did a three-week camp and the whole team was in good form, Burgos confirmed that. We're not afraid of anyone. I feel very well."

Watch Arnaud Demare sprint to Milano-Torino victory

1Arnaud DemareGroupama-FDJ4:18:57
2Caleb EwanLotto Soudal
3Wout van AertJumbo-Visma
4Peter SaganBora-Hansgrohe
5Danny van PoppelCircus-Wanty Gobert
6Nacer BouhanniTeam Arkea-Samsic
7Fernando Gaviria RendonUAE Team Emirates
8Manuel BellettiGiocattoli-Sidermec
9Dion SmithMitchelton-Scott
10Ben SwiftTeam Ineos
'Big step forward' - ISN targeting biggest races with Froome onboard
Tour de France
Bernal wants Ineos Tour leadership in 2022 – but will he get it over Thomas and Carapaz?