The West Indies bagged three Zimbabwe wickets late on Day 2 to move into a commanding position in the first Test in Barbados on Wednesday.
Zimbabwe reached the close on 41 for three in their second innings, trailing the West Indies by 55 runs, as they battled with the fiery pace of the hosts' three fast bowlers and the guile of off-spinner Shane Shillingford.
The tourists' captain Brendan Taylor will resume on day three having yet to get off the mark and he will be key to Zimbabwe's chances of posting a defendable total.
Nightwatchman Ray Price (seven not out) was the other batsman at the crease.
Zimbabwe faced a first-innings deficit of almost a hundred and took their score to 25 before Tino Mawoyo (9) chased a wide delivery from Shannon Gabriel and edged to Darren Sammy at second slip.
Hamilton Masakadza (1) gloved a Shillingford delivery to Sammy at leg-slip, before Vusi Sibanda (15) presented a simple caught and bowled chance to the same bowler to leave the tourists with their top three back in the pavilion.
Earlier, big-hitting by West Indies captain Sammy helped his side to a respectable first-innings total as they were bowled out for 307 after recovering from 151 for six.
Sammy blasted 73 at better than a run-a-ball as he added 106 for the seventh wicket with Denesh Ramdin before being bowled by Masakadza.
Resuming in the morning on 18 for two, Chris Gayle (40), Darren Bravo (11) and Marlon Samuels (51) fell before lunch.
Bravo became Jarvis's third victim of the innings when he edged to wicketkeeper Regis Chakabva playing forward to a full delivery.
Gayle showed typical intent with a blaze of boundaries, but became the first test wicket for debutant fast-bowler Tendai Chatara. The 22-year-old got good bounce off a length and Gayle could only fend the ball to Taylor at second slip.
Samuels's excellent form continued as he passed 50 for the 10th time in his last 15 Test innings, but he was out the ball before lunch trying an expansive drive against the medium pace of Masakadza and edged behind to Chakabval.
When Shivnarine Chanderpaul (26) fell just after lunch with the score on 151, there would have been some panic in the home dressingroom.
But enter Sammy at his swashbuckling best and he and Ramdin (62) rescued the situation with a century stand.
Tino Best (24) provided some runs down the bottom of the order, but when he was caught at point off Jarvis to close the innings, the Zimbabwe bowler had career-best figures of five for 54.
Scorecard
Zimbabwe (1st innings): 211 (T.Mawoyo 50, Samuels 4-13)
West Indies (1st innings): (18 for two overnight)
C. Gayle c Taylor b Chatara 40
K. Powell lbw Jarvis 5
K. Roach lbw Jarvis 0
D. Bravo c Chakabva b Jarvis 11
M. Samuels c Chakabva b Masakadza 51
S. Chanderpaul c Chakabva b Jarvis 26
D. Ramdin c Sibanda b Chatara 62
D. Sammy b Masakadza 73
S. Shillingford c Jarvis b Price 1
T. Best c Cremer b Jarvis 24
S. Gabriel not out 0
Extras: (b-9, lb-3, w-1, nb-1) 14
Total: (all out; 84.2 overs) 307
Fall of wickets: 1-8, 2-8, 3-43, 4-81, 5-144, 6-151, 7-257, 8-268, 9-301, 10-307.
Bowling: Jarvis 17.2-4-54-5 (1nb 1w), Chatara 19-6-66-2, Cremer 20-0-103-0, Masakadza 10-2-25-2, Price 18-2-47-1.
Zimbabwe (2nd innings):
T. Mawoyo c Sammy b Gabriel 9
V. Sibanda c & b Shillingford 15
H. Masakadza c Sammy b Shillingford 1
R. Price not out 7
B. Taylor not out 0
Extras: (b-8, lb-1) 9
Total: (for three wickets, 14 overs) 41
Fall of wickets: 1-25, 2-26, 3-39
To bat: C. Ervine, M. Waller, R. Chakabva, K. Jarvis, A. Cremer, T. Chatara
Bowling: Roach 5-3-10-0, Best 3-2-6-0, Gabriel 4-1-7-1, Shillingford 2-0-9-2.
Photograph: Gareth Copley/Getty Images