Tamim Iqbal's second hundred of the series and a quickfire unbeaten half-century by Mahmudullah led Bangladesh to an 18-run victory in the third ODI to capture the three-match series 2-1.


Bangladesh set up a formidable 301 for six – their highest ODI total against West Indies - at Warner Park in St Kitts, which proved to be enough as West Indies fell short despite giving a tough fight.


Chris Gayle (73) and Rovman Powell struck fighting half-centuries but Bangladesh captain Mashrafe Mortaza picked up two vital wickets to cripple the hosts.


Powell remained unbeaten on 74 off just 41 balls. For Bangladesh, Mehidy Hasan was the most economical bowler, giving away only 45 runs in his 10 overs with the wicket of Shirmron Hetmyer in it.


Earlier, with the series all-square following the hosts' thrilling three-run win in the second match under lights in Guyana on Wednesday, the tourists have set the pace in this fixture with their top-order batting justifying the decision by captain Mashrafe Mortaza to bat first after he won the toss for the third consecutive time.


Tamim's confident 103 off 124 balls with seven fours and two sixes again provided his team with a solid foundation in pursuit of their first series win away from home in nine years.


His innings lifted his tally in the three matches to 287 runs at an outstanding average of 143.5.


As in the first two ODIs he found a reliable partner in Shakib Al Hasan, the pair putting on 81 runs for the second wicket after West Indies captain Jason Holder removed Anamul Haque to a catch by Kieran Powell running back from mid-off in the tenth over.


Powell was one of two changes to the West Indies team as he replaced Jason Mohammed in the middle-order while left-arm fast bowler Sheldon Cottrell, drafted into the squad due to Andre Russell's knee injury, came in for lanky pacer Alzarri Joseph.


Bangladesh retained the same eleven from the two previous matches.


Anamul's dismissal came with the score just on 35, but Tamim and Shakib picked up the pace in the manner of their previous second-wicket partnerships -- a record 207 in the first match in Guyana followed by 97 in the second encounter at the same venue.


Shakib eventually departed off the bowling off Ashley Nurse, who together with fellow spinner Devendra Bishoo put a brake on Bangladesh's progress through the middle of the innings.


However, they were able to cut loose over the final 20 overs as 150 runs were plundered in that period, thanks in the main to the unbridled aggression of Mahmudullah.


He had come to the crease when Nurse took his second wicket in bowling Mushfiqur Rahim and immediately went into attack mode, his adventurous knock of 67 not out occupying 49 deliveries and embellished with five fours and three sixes.


Tamim was prepared to play the supporting role to Mahmudullah's assault and eventually reached his 11th ODI hundred in the 38th over but didn't get much further as a miscued sweep off Bishoo offered a catch to Powell at backward square-leg.


Big-hitting Mashrafe promoted himself up the order in a clear statement of intent, his frenetic 36 off 25 balls putting the West Indies under immense pressure during the final ten overs until his opposite number, Holder, dismissed him.


But with Mahmudullah still blazing away Bangladesh were able to cross the 300-run mark in the final over of the innings and set the West Indies a daunting target in pursuit of Holder's first ODI series win as West Indies captain since he was handed the job as an untried 23-year-old at the start of 2015.