Britain’s Tom Pidcock was 15th for Ineos Grenadiers, but led the 299km race with only three kilometres to go.
Pidcock, 21, crossed the line just metres behind the first three.
In only his fifth World Tour race, Pidcock came to the front of the leading group of riders – including Deceuninck-Quick Step’s Julian Alaphilippe, the in-form Mathieu van der Poel (Alpecin-Fenix) and Jumbo-Visma’s Van Aert.
Pidcock led down much of the Poggio descent in the closing stages of the race.
As the race wound through tight and twisty roads surrounded by the famous greenhouses on the outskirts of San-Remo, Stuyven, who had previously won mainly one day ‘semi-classic’ races in Belgium, launched a surprise attack.
Stuyven was caught by Soren Kragh Andersen of Team DSM near the final kilometre, but surged again with the line in sight to win by a bike length from the group of chasing sprinters.
‘La Classicissima’ – one of cycling’s five showcase ‘monument’ one day events – is famous for its draining parcours and exciting descent to San Remo’s Via Roma main street.
“The three guys [Van der Poel, Van Aert and Alaphilippe] who are really strong, everyone knows,” said Stuyven, who collapsed off his bike and onto race organisers and team staff after he crossed the line.
“I just tried to go for it,” he added. “I really felt good all day. I just had to try all or nothing. Eight out of 10 times you get nothing – my legs were empty by the end.”
Mark Cavendish was the last British rider to win Milan-San Remo, for Colombia-HTC in 2009. Before then it was Tom Simpson in 1964.