Chasing 290 to win, the two-time champions reached their target with six balls to spare after surviving a worrying mid-innings collapse.
The West Indies lead the Super Sixes qualifying table with six points but will still need to avoid defeat against Scotland on Wednesday in their last pool match to be sure of a place in next year's finals.
Zimbabwe, on five points, can still make the 2019 finals by beating the UAE on Thursday although the Scots, Ireland and Afghanistan all remain in contention for a spot in the showpiece in England and Wales.
Brendan Taylor top scored for Zimbabwe with 138 which included 20 boundaries and two sixes.
For the West Indies, Marlon Samuels smashed 86 off 80 balls with four sixes while Evin Lewis and Shai Hope also contributed half centuries.
Zimbabwe 289 all out in 50 overs (B. Taylor 138; J. Holder 4-35) v West Indies 290-6 in 49 overs (M. Samuels 86, S. Hope 76, E. Lewis 64)
West Indies won by four wickets
ICC World Cup QualifierICC World Cup Qualifier 2018ICC World Cup Qualifiers 2018West IndiesWest Indies vs. Zimbabwe
First Published: March 20, 2018, 7:50 AM IST