Chasing 250 for a win, Hope, opening the innings, smashed three sixes and eight fours in his 145-ball 109 not out to help West Indies overhauled the target, scoring 253 for 5 in 48.4 overs.
He was ably supported by Roston Chase (42 not out), Brandon King (39), Nicholas Pooran (21) and skipper Kieron Pollard (32).
Earlier, put into bat, Afghanistan posted a competitive 249 for 7, riding on Asghar Afghan’s 85-ball 86 and fifties from opener Hazratullah Zazai (50) and Mohammad Nabi (50 not out).
Asghar and Nabi shared a 127-run partnership for the sixth wicket after Afghanistan slipped to 118 for 5 to lift the team to a good score.
For the West Indies, Keemo Paul (3/44) snapped three wickets, Alzarri Joseph (2/59) took two, while Romario Shepherd (1/47) and Roston Chase (1/24) accounted for one each.
West Indies were reduced to 4 fo 2 early in their chase with Mujeeb striking twice in the third over.
The spinner dismissed Evin Lewis (1) and Shimron Hetmyer (0) early but King and Hope added 64 runs before Rashid Khan cleaned up the latter.
Pooran then joined Hope and the duo took West Indies past the 100-run mark before the former became a victim of Sharafuddin Ashraf in the 29th over.
Pollard then shared 63 runs with Hope but the skipper was removed by Nabi in the 38th over.
Chase and Hope then took the team home.
Afghanistan: 249 for 7 in 50 overs (Asghar Afghan 86; Keemo Paul 3/44).
West Indies: 253 for 5 in 48.4 overs (Shai Hope 109 not out; Mujeeb Ur Rahman 2/49).