Bangalore: Fletcher scored 84*, off 64-ball and Badree took three wickets as West Indies took a big step towards the semi-finals of the World Twenty20 with a seven-wicket win over Sri Lanka in Bangalore on Sunday.
Darren Sammy's men produced a superb performance with the ball to restrict Sri Lanka to 122-9.
Samuel Badree took 3-12 and Dwayne Bravo 2-20 as regular wickets derailed Sri Lanka, with only Thisara Perera's 29-ball 40 offering any resistance.
Andre Fletcher blasted an unbeaten 84 off 64 balls as the West Indies reached the target with 10 balls to spare.
It's a second victory for West Indies, who beat England by six wickets on Wednesday, meaning they will qualify for the last four if they beat South Africa on Friday.
Earlier, Sri Lanka posted a paltry 122 for nine after West Indies captain Darren Sammy won the toss and elected to field
All-rounder Thisara Perera top scored for Sri Lanka with 40, including five fours, off 29 balls at the M.Chinnaswamy Stadium, while skipper Angelo Mathews chipped in with 20.
Opener Tillakaratne Dilshan, the star for Sri Lanka in their win over Afghanistan last week in the first match, started in promising style, smacking a six off the second ball.
But the 39-year-old veteran was sent packing in the third over, lbw to Carlos Braithwaite.
His opening partner Dinesh Chandimal made a quick 16 runs from 18 balls before he was sensationally run out, thanks to some quick fielding by Johnson Charles at cover.
Chandimal wanted a swift single and took off down the pitch, but was sent scampering back by Lahiru Thirimanne at the other end.
An annoyed Chandimal gestured to his teammate before walking from the ground shaking his head.
Thirimanne was gone just seven balls later for five, as the wickets tumbled thanks to solid West Indies bowling led by leg spinner Samuel Badree.
Chamara Kapugedera was stumped by Denesh Ramdin for six, while Milinda Siriwardana was caught by Gayle three balls later for nought to leave Sri Lanka reeling at five for 55 at the halfway mark.
Perera and Mathews combined to steady the ship, adding 44 runs for the sixth wicket, before the captain was caught behind.
Perera was caught at the boundary in the final over by Andre Russell.
But defending champions Sri Lanka face a battle to advance, and their match against England in Delhi on Saturday now looms large, with the loser likely to be eliminated.
Sri Lanka - 122 for 9 (Perera 40, Badree 3-12, Bravo 2-20)
West Indies - 127 for 3 (Fletcher 84*, Siriwardana 2-33)
Result - West Indies won by seven wickets
Points - West Indies 2, Sri Lanka 0
MOM - Andre Fletcher (West Indies)