Sri Lanka's captain Charith Asalanka claimed three wickets, with two coming off consecutive balls in the 48th over, as the first one-day international of their three-match series against India concluded in a thrilling tie in Colombo on Friday.

India required 231 runs to win, following Sri Lanka's Dunith Wellalage's unbeaten 67 and Pathum Nissanka's 56 on a challenging pitch at the R Premadasa Stadium. Despite some shaky moments in their pursuit, India seemed poised to win but ultimately fell short.

The visitors found themselves in trouble at 132-5 after Rohit Sharma's aggressive 58, but KL Rahul's steady 31 helped stabilize the innings. However, Rahul was dismissed trying a slog sweep, mirroring his captain's earlier dismissal. Axar Patel hit a significant six, leaving India needing 35 runs in 10 overs, but was out for 33. Shivam Dube then delivered some crucial late hits, bringing India close to victory.

Asalanka (3-30) bowled Dube for 25 in the fourth ball of the 48th over and then dismissed Arshdeep Singh with the next ball, sparking jubilant celebrations. Sri Lanka chose to bat first after winning the toss and had a tentative start. Nissanka, after being dropped by Mohammed Siraj on 20, managed to score a resilient half-century before being lbw to Washington Sundar. Janith Liyanage was out for 20 just as his partnership with Wellalage was gaining momentum, but replays indicated he had hit the pitch with his bat while attempting a big shot off Axar and missed the ball, leading to a bizarre dismissal.

Despite being at 142-6, Wellalage, Wanindu Hasaranga (24), and Akila Dananjaya (17) ensured Sri Lanka finished with a competitive total. Sri Lanka last won a bilateral ODI series against India 27 years ago and will be optimistic when they face off again at the same venue on Sunday, followed by the final game on Wednesday. The hosts were previously defeated 3-0 in the Twenty20 series last month.