Sri Lanka struggled against tight bowling by the West Indies, who seemed geared up to defend a modest total, and were pegged back with the early dismissal of opener Niroshan Dickwella.
The Sri Lankan captain was the first victim for Shillingford, caught by Permaul in the fourth over with the score on 13, before Gabriel ripped apart the middle-order with three quick wickets for the addition of just 12 runs as Sri Lanka were 25 for four and 26 for five by the tenth over.
Dilruwan Perera, who was last out for 48, and left-hander Ramith Rambukwella (22), sought to rescue their team with a 55-run seventh-wicket partnership but once Rambukwella was caught by Simmons at slip, off Veersammy Permaul, the innings further crumbled.
Victory was sealed for the home team as Permaul breached the defence of Perera, whose fighting 48 came off 95 balls.
Earlier, West Indies were also in early trouble after opting to bat, as the Sri Lankan bowlers kept the batsmen in check.
Opener Lendl Simmons and captain Kirk Edwards both went without scoring in the fourth over, with just 11 runs on the board, and the home team slipped to an uncomfortable 37 for 4 in the 11th over as opener Nkrumah Bonner (18) fell leg-before-wicket.
It was left to wicketkeeper Devon Thomas and Andre Fletcher to rescue the team in a 105-run fifth-wicket partnership, with both scoring responsible half-centuries.
They batted sensibly, rotating the strike with good running between the wickets, and pushed the score to 100 in the 33rd over as Thomas took his score to 33 with a lofted boundary.
Thomas brought up his 50 in the 41st over, collecting two runs on the off-side, but was dismissed next ball as he attempted another boundary off Seekuge Prasanna. He faced 76 balls, batted for 85 minutes and struck four boundaries.
Fletcher scored 59 and was seventh out, in the 46th over, playing across a delivery from Suranga Lakmal. Fletcher faced 94 balls and batted for 112 minutes.
Spinner Nikita Miller then pushed West Indies close to 200, scoring an aggressive 23 off 22 balls which included a straight six off the last ball of the innings.
The modest total then proved too much for the Sri Lankans who won the first ODI by four wickets before West Indies convincingly won the last two to win the series 2-1.
WEST INDIES A innings
N. Bonner lbw b Perera 18
L. Simmons c Dickwella b Lakmal 0
K. Edwards b Lakmal 0
N. Deonarine c Dickwella b V Perera 11
A. Fletcher lbw b Lakmal 59
D. Thomas+ c Vithanage b Prasanna 50
J. Holder stp. Dickwella b Rambukwella 2
N. Miller not out 23
V. Permaul c Perera b De Silva 10
S. Shillingford not out 0
S. Gabriel (did not bat)
Extras: (b-8, lb-8, w-7) 23
Total: (for 8 wkts, off 50 overs) 196
Fall of wickets: 1-11, 2-11, 3-35, 4-37, 5-142, 6-150, 7-158, 8-182.
Bowling: Lakmal 10-4-28-3 (w-1), Perera 7-1-28-1 (w-1), Perera 8-0-35-1 (w-2), De Silva 9-0-0-35-1 (w-1), Prasanna 9-0-1-23, Rambukwella 7-0-31-1 (w-2)
SRI LANKA A Innings:
Niroshan Dickwella c Permaul b Shillingford 6
Dimuth Karunaratne b Gabriel 12
Kithuwan Vithanage b Gabriel 5
Thilana Kandamby c Thomas b Gabriel 0
Ashan Priyanjana c Permaul b Shillingford 7
Chaturanga De Silva c Simmons b Shillingford 0
Dilruwan Perera b Permaul 48
Ramith Rambukwella c Simmons b Permaul 22
Seekuge Prasanna b Holder 10
Suranga Lakmal b Holder 0
Vimukthi Perera not out 1
Extras: (b-4, lb-5, w-9) 18
Total: (all out, off 40.3 overs) 129
Fall of wickets: 1-13, 2-20, 3-20, 4-25, 5-26, 6-43, 7-98, 8-113, 9-113.
Bowling: Gabriel 7-3-14-3, Shillingford 10-1-33-3, Miller 7-2-20-0, Deonarine 7-2-14-0, Permaul 6.3-1-19-2, Holder 3-0-20-2.