Alejandro Valverde won his fourth Liege-Bastogne-Liege as tributes were held in memory of Michele Scarponi, who died in a training crash on Saturday.
The Italian, 37, collided with a van close to his home in Filottrano.
A minute's silence was held before the race, with race director Christian Prudhomme then leading tributes to "a rider who was loved and respected, a ray of sunshine in the peloton".
Ireland's Dan Martin was second, with Poland's Michal Kwiatkowski third.
"That was for you Scarponi," said Spaniard Valverde, 36, after crossing the line at the end of the gruelling 258km race in Belgium, one of cycling's one-day Spring Classics.
"He was a very god friend of mine and when I heard the news, it was terrible. All of the prize money is going to his family. The race was unbelievable today, the team did a fantastic job."
The Liege-Bastogne-Liege is the oldest of cycling's 'Monument' one-day races, a group that includes the Milan-San Remo, Tour of Flanders, Paris-Roubaix and Giro di Lombardia.
With 500m to go, Quick-Step Floors rider Martin, 30, the winner in 2013, raced into the lead, countering after Italian Davide Formolo's earlier attack.
But Movistar's Valverde breached across before easing home to add to three previous victories - in 2006, 2008 and 2015.
Adam Yates, 24, was the highest-placed Briton in eighth, riding for Orica-Scott.
Valverde is now the joint second-most successful rider in the race's history, level with Italian Moreno Argentin, and one behind Belgium's Eddy Merckx.
Final result: Liege-Bastogne-Liege:
1. Alejandro Valverde (Spa/Movistar) 6:24:27"
2. Daniel Martin (Ire/Quick-Step) Same time
3. Michal Kwiatkowski (Pol/Team Sky) +3"
4. Michael Matthews (Aus/Sunweb)
5. Ion Izagirre (Spa/Bahrain)
6. Romain Bardet (Fra/AG2R)
7. Michael Albasini (Swi/Orica)
8. Adam Yates (GB/Orica) +7"
9. Michael Woods (Can/Cannondale)
10. Rafal Majka (Pol/BORA)