India booked their place in the Asia Cup final after snapping Sri Lanka’s 13-match winning streak in ODI cricket with a 41-run win in Colombo.
India, a day after destroying Pakistan by 228 runs on the same ground, successfully defended a total of 213 runs as Sri Lanka were bowled out for 172 runs in reply.
Rohit Sharma’s side will face the winner of Wednesday’s match between Sri Lanka and Pakistan in the final on Sunday, with Bangladesh’s hopes of qualifying for the Super Four all but over.
India 213 all in 49.1 overs: Rohit Sharma (53); Donith Willalage (5-40), Sharith Asalanka (4-18)
Sri Lanka 172 all in 41.3 overs: Donith Willalage (42), Dhananjaya de Silva (41); Kuldeep Yadav (4-43)
Donith Wellage’s excellent all-round display came in vain for Sri Lanka as the 20-year-old left-arm pacer took a five-wicket haul and scored an unbeaten 42.
Willalage dismissed five of India’s top six, removing Rohit Sharma (53), Shubman Gill (19) and Virat Kohli (3) as Rohit’s side slumped from 80-0 to 91-3.
The youngster then ended a half-century stand between KL Rahul (39) and Ishan Kishan (33) when he caught Rahul off his own bowling before also going on to dismiss Hardik Pandya (5).
Sri Lanka, who were last beaten in ODI cricket by Afghanistan in June, slumped to 25-3 and then 99-6 in the chase before a 63-run stand between Wellalage and Dhananjaya de Silva (41) gave them hope.
However, Sri Lanka lost their last four wickets for 10 runs once Dhananjaya chipped Ravindra Jadeja to mid-off, with Indian spinner Kuldeep Yadav taking 4-43, a day after shredding Pakistan by a five-wicket haul.