Zimbabwe made 206 all out with Elton Chigumbura contributing 50 but West Indies surpassed their total with 13 balls to spare, although they were made to work by some smart spin bowling from the tourists.
Slow left-armer Ray Price trapped West Indies opener Adrian Barath lbw and then removed Dave Bernard with a superb stumping from keeper Tatenda Taibu as Zimbabwe looked for a repeat of Thursday's surprise win.
Although Gayle was timing the ball well at the other end, the home side found themselves struggling at 85-4 after Shivnarine Chanderpaul [ Images ] and Andre Fletcher went cheaply.
But local boy Narsingh Deonarine produced a steely display and put on 83 with Gayle before a wild stroke from the skipper saw him bowled by spinner Graeme Cremer with the score on 168 for five.
There must have been some nerves in the West Indies dressing room after Kieron Pollard was caught in the deep off Brendan Taylor with an unnecessarily aggressive stroke.
However, Deonarine kept his cool to make an unbeaten 65, his best score in a one-day international, with partner Darren Sammy's securing the win with a four.
The victory was the first one-day international victory for West Indies in 15 games and Gayle said he was glad to have avoided another embarrassing loss.
"It's a relief. Hopefully this is the first of many to come. I must say Zimbabwe played really well to push us so far but I must commend the boys on coming back from the defeat," he said.
H. Masakadza c Miller b Roach 14
V. Sibanda run out 5
B. Taylor lbw b Gayle 47
T. Taibu c Chanderpaul b Miller 31
S. Matsikenyeri c Gayle b Miller 2
G. Lamb c & b Miller 23
E. Chigumbura c Deonarine b Roach 50
A. Cremer b Miller 17
P. Utseya not out 6
R. Price b Roach 0
C. Mpofu run out 0.
Extras: (b-1, lb-5, w-5) 11
Total: (all out, 49.5 overs) 206
Fall of wickets: 1-6, 2-34, 3-93, 4-100, 5-107, 6-180, 7-183, 8-205, 9-206, 10-206
Bowling: K.Roach 9.5-0-37-3; D.Bernard 4-1-22-0 (w-1); S.Benn 9-1-37-0; D.Sammy 5-0-17-0; C.Gayle 10-0-25-1 (w-1); N.Miller 9-0-43-4 (w-2); K.Pollard 3-0-19-0 (w-1)
C. Gayle b Cremer 88
A. Barath lbw b Price 7
D. Bernard st Taibu b Price 1
S. Chanderpaul lbw b Lamb 10
A. Fletcher b Cremer 0
N. Deonarine not out 65
K. Pollard c Sibanda b Taylor 7
D. Sammy not out 9.
Extras: (lb-4, w-16, nb-1) 21
Total: 208 (for six, 47.5 overs) 208
Did not bat: S. Benn, N. Miller, K. Roach
Fall of wickets: 1-44, 2-47, 3-82, 4-85, 5-168, 6-187
Bowling: P.Utseya 10-0-53-0; R.Price 8.5-0-31-2 (w-3); C.Mpofu 4-1-30-0 (w-4); G.Lamb 10-2-23-1 (w-2); A Cremer 10-0-44-2 (w-1); S.Matsikenyeri 2-0-8-0 (w-2); E.Chigumbura 2-0-9-0 (nb-1); B.Taylor 1-0-6-1