Sri Lanka 330 for 7 (Dickwella 94, Kusal Mendis 94, Dhananjaya de Silva 58, Holder 3-57) beat West Indies 329 for 9 (Lewis 148, Holder 45*, Lakmal 2-67, Kulasekara 2-73) by one run
Scorecard and ball-by-ball details
Evin Lewis, with just a handful of internationals under his name, struck a counter-attacking maiden ODI century to give West Indies more than just a sniff in their attempt to gun down a 300-plus chase for the first time in ODIs. Carlos Brathwaite and Jason Holder then came up with sprightly cameos to take West Indies to within 24 of Sri Lanka's 330 for 7. Then, in a mirror image of Saturday's collapse that resulted in a tie, West Indies stumbled, this time to a one-run loss triggered by panic, poor shot selection and lackadaisical running between the wickets.
The result meant Sri Lanka were assured of a berth in Sunday's final, while West Indies and Zimbabwe will play a virtual semi-final on Friday to earn the right to meet Sri Lanka at the same venue. A tie or no-result would knock Zimbabwe out and ensure West Indies' qualification.
West Indies were in control until the last five overs of their chase. Carlos Brathwaite and Holder put together 45 for the seventh wicket, before Nuwan Kulasekara delivered an inswinging yorker that beat Brathwaite and hit middle stump. Suranga Lakmal then took over, bowling full and taking out Ashley Nurse in the next over. Suddenly, West Indies, who were cruising for most parts of the chase, needed 19 off 10 balls.
It eventually boiled down to the final over, bowled by Nuwan Pradeep, with West Indies needing 10. After a single and a dot off the first two balls, Sulieman Benn muscled the third over deep midwicket to spark excitement in the West Indies camp. With three needed off three, Pradeep speared another yorker, before Benn holed out to sweeper cover, leaving Holder to score three off the final delivery. Pradeep bowled another one into the blockhole, with Holder only managing to squeeze it to cover for a single as Sri Lanka pulled off a heist.
That meant Lewis' 148, which contained 15 fours and four sixes, went in vain. His enterprise ensured West Indies rode the mini-wobbles and stood abreast with the asking rate for most parts of the chase. Then with the equation back into familiar territory - 154 off the last 20 overs with seven wickets in hand - he slowed down just a bit before recovering from a bout of cramps for one final hurrah.
Brute force was just one element of his knock. It was the other element - luck - that had played an equal part in West Indies' chase. He was first put down on 26 by Kusal Mendis at backward point off Lakmal. Pradeep then reprieved him on 41 at mid-on. Then on 53, a close lbw shout went Lewis' way. Given out, he reviewed the decision only for the third umpire to find the ball had pitched fractionally outside leg stump.
That wasn't it. He survived a run-out chance on 114 when Niroshan Dickwella dislodged the bails before he could collect the ball cleanly. He continued to swing his way to make 148 before being stranded mid-pitch courtesy a mix-up with his captain Holder, with West Indies slipping to 262 for 6, needing 69 off 57 balls.
Sri Lanka's fielding nightmare extended to the end overs, with Upul Tharanga dropping a skier at mid-on to reprieve Carlos Brathwaite on 3. Sri Lanka's fast bowlers, however, hit the blockhole with regularity in the end overs to bail the side out.
That the bowlers had as many to defend was courtesy enterprising 94s from Kusal Mendis and Dickwella that contributed to Sri Lanka's highest ODI score against West Indies. They lost Kusal Perera, cleaned up by Shannon Gabriel in the third over, but quickly got back on track courtesy Dhananjaya de Silva's exuberant 58. At one stage, Dhananjaya and Dickwella matched each other stroke-for-stroke; the shot of the innings being Dickwella's adventurous 'Dilscoop' off Carlos Brathwaite.
Dropped on 39 when Shai Hope put down a tough chance behind the stumps, Dickwella made them pay as he stitched together a 107-run stand with Kusal Mendis, who gradually switched gears. The hallmark of Kusal's effort against spin was in sharp contrast to his measured approach against the fast bowlers - Gabriel constantly clocked average speeds of 145kph in a lively opening spell despite battling through a hamstring niggle - on a grassy surface that was half as menacing as it looked.
Getting outside the line of the stumps, the sweep and the pull was his preferred mode of operation as he peppered the leg-side boundaries with five sixes. He fell six short of a maiden ODI century while trying to play a late dab, before Tharanga, the stand-in captain, and Pathirana then lent the finishing touches with cameos which made a difference in the end.
Shashank Kishore is a senior sub-editor at ESPNcricinfo