Lower-order batsman Chamika Karunaratne hit an unbeaten 44 to steer Sri Lanka to 275 for nine in the second one-day international against India on Tuesday.
Karunaratne's 33-ball knock added to the Sri Lankan total after Avishka Fernando (50) and Charith Asalanka (65) took on the Indian bowling in Colombo.
Dasun Shanaka-led Sri Lanka elected to bat first for the second time in the three-match series after losing the opener by seven wickets on Sunday.
Leg-spinner Yuzvendra Chahal and pace spearhead Bhuvneshwar Kumar took three wickets each while quick bowler Deepak Chahar claimed two.
Fernando got Sri Lanka off to a strong start with a 70-run opening stand with wicketkeeper-batsman Minod Bhanuka, who made 36.
Chahal broke through with two successive strikes, sending back Bhanuka and Bhanuka Rajapaksa for nought.
Fernando kept up the fight with his fourth ODI half-century and put on 47 runs with Dhananjaya de Silva for the third wicket. But the opener soon fell to Kumar after his 50 off 71 balls.
Bowlers struck back with middle-order wickets, but the left-handed Asalanka took the attack to the opposition with a maiden ODI fifty in his fourth match.
His 50-run, seventh-wicket partnership with Karunaratne set the tone for Sri Lanka's strong finish in their bid to keep the series alive.
Karunaratne, who hit a quickfire in the his team's total of 262 in the opening match, stood firm after Asalanka's departure in the 48th over to help Sri Lanka get 23 runs from the final 12 balls.
India, led by Shikhar Dhawan, need 276 to clinch the series.
Sri Lanka v India 2nd ODI scoreboard
Scoreboard after Sri Lanka's innings in the second one-day international against India in Colombo on Tuesday:
Sri Lanka
A. Fernando c K. Pandya b Kumar 50
M. Bhanuka c Pandey b Chahal 36
B. Rajapaksa c Kishan b Chahal 0
D. de Silva c Dhawan b Chahar 32
C. Asalanka c sub (D. Padikkal) b Kumar 65
D. Shanaka b Chahal 16
W. Hasaranga b Chahar 8
C. Karunaratne not out 44
D. Chameera sub (D Padikkal) b Kumar 2
L. Sandakan run out (†Ishan Kishan) 0
K. Rajitha not out 1
Extras (lb6, nb2, w13) 21
Total (9 wickets, 50 overs) 275
Fall of wickets: 1-77 (Bhanuka), 2-77 (Rajapaksa), 3-124 (Fernando), 4-134 (D. de Silva), 5-172 (Shanaka), 6-194 (Hasaranga), 7-244 (Asalanka), 8-264 (Chameera), 6-266 (Sandakan)
Bowling: Kumar 10-0-54-3 (w1, nb1), Chahar 8-0-53-2 (w3), H. Pandya 4-0-20-0 (w7, nb1), Chahal 10-1-50-3, Yadav 10-0-55-0 (w1), K. Pandya 8-0-37-0 (w1)
India: S. Dhawan (capt), P. Shaw, I. Kishan (wk), M. Pandey, S. Yadav, H. Pandya, K. Pandya, D. Chahar, B. Kumar, Y. Chahal, K. Yadav
Toss: Sri Lanka