Van Aert stamped his dominance on the relaunched 2020 cycling season, with his second win in the space of a week after his solo Strade Bianche victory.
The Dutchman was the only one able to respond to Alaphilippe's attack over the top of the Poggio with 6.5 kilometres to go.
The cyclocross star was able to overcome a small deficit to the flamboyant Frenchman on the descent from the traditional final climb of the monument and the pair worked well together to keep their advantage over a charging peloton.
With seven seconds lead heading into the final kilometre, van Aert was left on the front by Alaphilippe, with van Aert generally regarded as more speedy in sprinting situations.
The Jumbo-Visma rider maintained the pace, held off the peloton and when Alaphilippe launched his sprint, he was able to respond to just hold on for his first monument victory.
"He went quite early and I had to close a little gap," said van Aert of Alaphilippe's attack. "I dropped again but there was nobody behind me, so I had no choice but to keep pushing and I was rewarded because I came back on the downhill.
"Julian played it really well, he put me on the front, and I needed to keep a bit of speed because the bunch was coming back."
"It was hard to do the right pace and still keep something for the sprint but in the end it was enough, because it was only half a wheel.
"I'm super happy. I can't believe I've taken these two victories in a row. I don't have words actually. I know everyone says that when they win a Monument but to start the second part of the season like this... it's crazy."
Michael Matthews (Team Sunweb) led the bunch in to take third place, convincingly outpowering Peter Sagan in the race for the final podium spot.
The 2020 edition of Milan Sanremo was the 111th running of the race. The race was forced to move to August from its normal March slot after the COVID-19 pandemic saw the season disrupted.
The route also changed, with the normal passages of the Turchino and Capi climbs gone after several mayors of coastal towns objected to the race passing through.
An alternative route had to be set in the weeks preceding the event and eventually a 305km inland route was set.
The longer race and the hotter conditions made for a relaxed start to the race, with Alessandro Tonelli, Fabio Mazzucco (both Bardiani-CSF), Manuele Boaro (Astana), Héctor Carretero (Movistar), Mattia Bais (Androni Giocattoli-Sidermec), Damiano Cima (Gazprom-RusVelo) and Marco Frapporti (Vini Zabù-KTM) forming the early breakaway.
The all-Italian move was allowed to bake in the sun before the catch was made heading into the ascent of the Cipressa, the start of what has become the traditional finale to the famous race. Julian Alaphilippe suffered a mechanical just before the climb and Daniel Oss (BORA-hansgrohe) attacked off the front of the peloton.
As Alaphillipe regained the main group, Oss was reeled in by the pace-making of Deceuninck-Quickstep's Bob Jungels just ahead of the Poggio climb.
Thomas de Gendt (Lotto Soudal) and Vincenzo Nibali (Astana) tried short-lived moves on the climb, but it was the attack of Alaphilippe and van Aert that was the one that stuck.