Spinner Shane Shillingford took five wickets to skittle Zimbabwe out for 175 on the opening day of the second Test in Roseau on Wednesday.
The West Indies reached 114 for 2 in reply at close.
Chris Gayle played some characteristically flamboyant shots after a cautious start to finish on 61 not out as the hosts finished just 61 runs behind with eight wickets in hand.
The tall Shillingford delighted his home crowd in Dominica with his third Test five-wicket haul as spin again proved the undoing of the inexperienced touring side. He took five for 59 as the Zimbabweans found it difficult to deal with the turn and bounce he extracted from a benign pitch.
Shillingford, man of the match for his nine-wicket haul in the hosts' first Test win in Barbados, was assisted by part-time bowler Marlon Samuels, who claimed three wickets with his occasional off spin.
Samuels, who took four wickets in the first innings of the opening Test, returned figures of three for 15.
It was another disappointing day for Zimbabwe, playing only their second Test in the last 14 months, as only three batsmen got past 30
Captain Brendan Taylor top-scored on 33, Vusi Sibanda made 32 and debutant Sean Williams 31.
Sibanda helped Zimbabwe get off to quick start after rain delayed the start of play by 30 minutes but chipped a full toss to mid on as fast bowler Shannon Gabriel dismissed the two openers in his first 10 balls to put the brakes on an early flurry of runs.
After that Zimbabwe surrendered meekly as Shillingford had the Windsor Park crowd in raptures.
Zimbabwe pace man Kyle Jarvis took two wickets at the start of the West Indies innings but a 79-run partnership between Gayle and Samuels (26 not out) put the home team in a dominant position.
Captain Darren Sammy said he wanted his side to bat just once when he put Zimbabwe in after winning the toss, setting up the prospect of a West Indies runs onslaught on Thursday.
Scorecard
Zimbabwe (1st Innings):
T. Mawoyo b Gabriel 8
V. Sibanda c Roach b Gabriel 32
H. Masakadza b Shillingford 14
B. Taylor b Shillingford 33
C. Ervine lbw Samuels 18
S. Williams c Powell b Samuels 31
M. Waller c Best b Shillingford 9
G. Cremer c Powell b Samuels 0
P. Utseya lbw Shillingford 9
K. Jarvis n.o. 1
T. Chatara lbw Shillingford 4.
Extras: 16
Total (60.5 overs, all out)175
Fall of wickets: 1-42, 2-43, 3-64, 4-105, 5-141, 6-158, 7-158, 8-161, 9-171.
Bowling: K. Roach 7-0-30-0, T. Best 10-0-32-0, S. Gabriel 8-6-10-2, D. Sammy 5-1-15-0, S. Shillingford 21.5-4-59-5, Samuels 9-3-15-3.
West Indies (1st Innings):
C. Gayle batting 61
K. Powell b Jarvis 24
D. Bravo c Taylor b Jarvis 0
M. Samuels batting 26
Extras: 3
Total: (27 overs, 2 wickets) 114
Fall of wickets: 1-35, 2-35.
Bowling: K Jarvis 7-2-35-2, T Chatara 7-2-21-0, H Masakadza 4-2-10-0, G Cremer 6-0-27-0, P Utseya 3-0-18-0.
Photograph: Philip Brown/Reuters