Stylish batter Kusal Mendis missed a century by just eight runs but still guided Sri Lanka to 291-8 in their crucial Asia Cup match against Afghanistan in Lahore on Tuesday.
The 28-year-old hit an attractive 84-ball 92 that included three sixes and six boundaries to anchor the Sri Lankan innings after they won the toss and batted at Gaddafi Stadium.
Both teams need a win to qualify for the Super Four stage from Group B, from where Bangladesh have already progressed.
Afghanistan, who lost to Bangladesh by 89 runs in their first game, need to reach the target in 37.1 overs to qualify for the next round on net run-rate.
Pakistan and India have already qualified for the Super Four stage from Group A.
Sri Lanka were off to a solid start of 63 for the first wicket between Pathum Nissanka (41) and Dimuth Karunaratne (32).
Mendis took over and added 102 for the fourth wicket with Charith Asalanka, who made a 43-ball 36.
But from 186-3 Sri Lanka had a middle-order stutter that saw them lose four wickets in the space of 41 runs, including that of Mendis who was run out.
Rashid Khan deflected a drive from Dasun Shanaka onto the stumps with Mendis short of his ground at the non-striker's end.
Dunith Wellalage, who scored an unbeaten 39-ball 33 with a six and three boundaries, added an invaluable 64 runs for the eighth wicket with Maheesh Theekshana (28).
Fast bowler Gulbadin Naib dismissed Theekshana off the final delivery to finish with Afghanistan's best figures of the innings with 4-60.