Topley marked his return to the England T20 side with a run out.
The second Twenty20 international is in Barbados.
England 171-8 (20 overs): Roy 45 (31), Moeen 31.
The West Indies scored 170-8 in 20 overs.
The series was level at one run.
There is a scorecard.
England dominated the majority of the second T20 against the West Indies, but ultimately lost by one run.
The West Indies needed 30 off the final over, only for Akeal to take Saqib for 28, including three sixes off the last three balls.
England bounced back from being dismissed for 103 in the first T20 to post 171-8 on a similarly challenging pitch.
They were powered by a 24 off of Roy's 11th over, as they racked up 107 runs in the second half of the game.
Roy made 45, adding 61 with Moeen Ali, who contributed 31, and Chris Jordan, who made 27.
Left-arm seamer Reece Topley, playing his first T20 international for nearly six years, ran out Shai Hope and trapped Brandon King in front of the home crowd.
The hosts were overwhelmed in the middle overs by the spinners.
England's margin of victory was tighter than it should have been because of the five sixes by Shepherd and the 44 by Hosein.
The series is level at one win each. The third game is on Wednesday.
Roy ignites the improvement of England.
England were indebted to a batting display vastly improved from Saturday's collapse, given the fright they were given at the end of the match.
The tourists were willing to be patient before unleashing the batting aggression that is their trademark, whereas in the opener they struggled to adapt to the conditions.
Roy was the epitome of this approach. Tom Banton swept and reverse-swept 25 off 18 balls before hammering a return catch to left-arm spinner Allen, who then disturbed James Vince's stump.
Roy had 17 from 23 balls at the halfway stage, only to explode into life and climb into Allan with three fours and two sixes in the first over of the second half. A slog sweep went out of the ground.
Roy had taken 28 runs off his seven previous deliveries when he fell in the next over.
The West Indies failed to match the fielding standards of the previous evening as Odean Smith dropped Moeen twice. There was an opening for the hosts when Sam and Moeen fell in consecutive overs.
It was snuffed out by Jordan and the captain added 31 at 10 runs an over. It was just enough.
Topley shines and the windies surge.
During England's run to the 2016 World Cup final, Topley had a career-threatening back injury that prevented him from playing international cricket for four years.
He was England's only change from Saturday and he pinned King with a hooping inswinger.
The run-out of Hope was amazing. Topley dived to catch the rebound and flick the ball to the non-striker's stumps.
He would have had another chance to get rid of Nicholas Pooran.
The two guys took control of the game, bowling in tandem for six overs that resulted in five kills for 32 runs.
Masterful leg-spinner Rashid had Kieron Pollard and Darren Bravo both LBW on review, while off-spinner Moeen continued his fine all-round display by having Pooran and Odean Smith hole out either side of a sharp caught and bowled off the bowling of Jason Holder -
Shepherd chanced his arm as 61 were needed from the final three overs with only two remaining.
He hit Jordan for three sixes in the 18th over, but after Topley was close in the 19th, the result was barely in doubt.
Although the one-run margin does not tell the story of England's superiority, Hosein's assault of two fours and three sixes was extraordinary.
It might have been worse for the tourists if Mahmood had not made a marginal decision from the first legal delivery of the over, which resulted in Hosein scoring the highest score by a number 10 in T20 internationals.