Shai Hope top-scored for the West Indies at Headingley with 77 while Nicholas Pooran and captain Jason Holder stepped up the pace as they reached 311-6 in their 50 overs.
Afghanistan mustered 288 all out in reply to fall to their ninth defeat out of nine despite a fighting 86 from Ikram Alikhil.
Neither side can qualify for next week's World Cup semi-finals.