Ali, who was again leading England with Eoin Morgan out of the series with a quad injury, hit 63 off 28 balls on Saturday as the tourists added 59 in the last three overs to post 193-6. Opener Jason Roy contributed 52 off 42 deliveries at the Kensington Oval.
Spinner Ali went on to take 2-28 from four overs as West Indies was held to 159-5. Opener Kyle Mayers top-scored with 40 off 23 and Jason Holder smashed 36 off 24 with two fours and three sixes.
The fifth and final game is on Sunday in Bridgetown.
It was an explosive finish to England’s innings, with Holder (3-44) clubbed for four successive sixes by Ali in the 18th over.
The hosts required 61 from the final 24 balls but Chris Jordan (0-30), brought back alongside Sam Billings after missing Wednesday’s loss, and Reece Topley (1-21) held their nerve at the death to ensure the five-match series goes to the wire.
Roy, dropped on three by Holder in the second over, shared an 85-run stand for the second wicket with James Vince (34) after England loss the toss and was asked to bat first.
England’s innings appeared to have lost momentum, adding just 54 from 48 deliveries to sit at 134-3 from 17 overs, before Ali decided to get after Holder and the ploy worked spectacularly.
In reply, the West Indies raced to 56-0 from six overs.
Adil Rashid (1-28) was a calming influence. With neither Mayers nor co-opener Brandon King (26) willing to take risks against Rashid they were caught in the deep attempting to go big against Ali before Rashid produced a googly that ripped through the gate of Rovman Powell (5), who made a ton last time out.
Holder got after Rashid with two leg-side heaves for six as he reached 30 for the first time in a T20 international. A grandstand finish looked to be on the cards but Jordan conceded just seven in the 17th over to end the home team’s aspirations of a series winning victory.