The home team closed on 94 for four in their second innings, a lead of 266, when bad light ended play 4.2 overs early.
With almost two hours also lost to rain during the day, a draw now looks likely.
The West Indies, resuming on 241 for six in reply to Zimbabwe’s first inning of 507 for nine declared, had earlier saved the follow on before being dismissed for 335.
It was Price’s fourth five-wicket haul in tests.
The 27-year-old left-armer, no great spinner of the ball but with the aggression of a fast bowler, opened the bowling on Friday with off spinner Trevor Gripper.
The pair found turn and bounce with the old ball on a wearing surface, bowling in tandem for 13 overs before the new ball was taken.
Fast bowler Heath Streak then broke a 50-run seventh-wicket stand by trapping Shivnarine Chanderpaul in front for 36.
Four overs later Price, in his 15th Test, induced a loose drive from the other overnight batsman, Vasbert Drakes, who was caught by Streak at extra cover for 31.
At 298 for eight, the touring side were still 10 runs shy of their follow-on target but Jerome Taylor and Corey Collymore nursed them to safety before Collymore drove limply at Price and was caught by Craig Wishart at slip for nine.
The innings ended after lunch when Fidel Edwards, on 18, sent a leading edge looping to Stuart Matsikenyeri at mid-off to earn Price his sixth wicket.
Zimbabwe have played four previous Tests against West Indies, losing three and drawing the other.
When they batted again, however, Zimbabwe slipped to 27 for two in the eighth over, Vusimuzi Sibanda pulling a delivery from Collymore to Daren Ganga at square leg and Mark Vermeulen edging a ball from Edwards to Chanderpaul at third slip to go for two.
Drakes struck twice after a resumption for rain, trapping Stuart Carlisle in front for 10 and removing opener Gripper in similar fashion.
The second and final Test starts in Bulawayo on Nov 12.
Scoreboard
ZIMBABWE (1st innings) 507-9 declared (H.Streak 127, A.Blignaut 91, T.Taibu 83, S.Matsikenyeri 57; Edwards 5-133)
West Indies (1st innings) (overnight 241-6)
C.Gayle lbw b Streak 14
W.Hinds c Blignaut b Mahwire 79
D.Ganga b Mahwire 73
B.Lara c Mahwire b Price 29
R.Sarwan lbw b Price 9
S.Chanderpaul lbw b Streak 36
R.Jacobs c Vermeulen b Price 5
V.Drakes c Streak b Price 31
J.Taylor c Wishart b Price 9
C.Collymore not out 11
F.Edwards c Matsikenyeri b Price 18
EXTRAS (b-7 lb-7 nb-4 w-3) 21
TOTAL (all out, 114.2 overs) 335
FALL OF WKTS: 1-50 2-127 3-179 4-211 5-215 6-240 7-290 8-298 9-309
BOWLING: Blignaut 14-3-68-0 (nb-3 w-1), Streak 28-9-74-2 (nb-1), Mahwire 25-7-75-2 (w-1), Price 37.2-13-73-6, Matsikenyeri 2-0-10-0, Gripper 8-1-21-0 (w-1)
ZIMBABWE (2nd innings)
V.Sibanda c Ganga b Collymore 16
T.Gripper lbw b Drakes 26
M.Vermeulen c Chanderpaul b Edwards 2
S.Carlisle lbw b Drakes 10
C.Wishart not out 25
S.Matsikenyeri not out 1
EXTRAS (b-8 nb-6) 14
TOTAL (for four wickets, 31.4 overs) 94
FALL OF WKTS: 1-21 2-27 3-60 4-90
BOWLING (to date): Collymore 10-2-34-1 (nb-3), Edwards 11-4-27-1 (nb-3), Drakes 10.4-2-25-2.—Reuters