Leg-spin sensation Rashid Khan became the fastest bowler ever to reach 100 one-day international wickets as the Windies were bowled out for 204, before big-hitting opener Shahzad smashed 84 as Afghanistan knocked off the runs with 9.2 overs to spare.
Both Afghanistan and West Indies had already made sure of their places in the 2019 World Cup by topping the 10-team qualifying tournament in Zimbabwe.
West Indies star Chris Gayle capped a poor personal tournament as he was dismissed for only 10 by 16-year-old leg-spinner Mujeeb Ur Rahman, who finished with 4-43.
Rovman Powell hit 44 as the two-time World Cup winners recovered to at least pass 200.
Rashid, 19, dismissed Shai Hope to take his 100th ODI wicket in only his 44th game, beating the previous record held by Australia's Mitchell Starc by eight matches.
Shahzad played some remarkable shots in his 93-ball innings, clubbing 11 fours and two sixes before holing out to the part-time spin of Gayle.
Rahmat Shah struck an assured 11th ODI half-century as Afghanistan cruised to victory to lift the trophy.
Scores in brief:
West Indies 204 all out in 46.5 overs (Mujeeb Ur Rahman 4-43) v Afghanistan 206-3 in 40.4 overs (Mohammad Shahzad 84, Rahmat Shah 51)
First Published: March 25, 2018, 9:21 PM IST