India’s Deepak Chahar won the match for the side with the bat after the right-hander struck career-best 69* off 82. India won the match by 3 wickets while chasing 276 and took an unassailable 2-0 lead in Colombo.
Sri Lanka’s Charith Asalanka expressed his disappointment after the hosts let the match slip away from their hands.
"We're all emotional - the team and coaches are all emotional," Asalanka said after the game.
"We're a young team. We haven't won much recently, and we're trying to do our best to play together for our country. Everyone tried hard and took it to the final over, but unfortunately we couldn't win,” he added.
Talking about the strategy, Asalanka said that Sri Lanka wanted to increase the required rate and put India under pressure.
"What we talked about in the 40th over was to push the game deep," Asalanka said.
"We wanted to increase their required rate. But they were successful because they didn't lose any wickets.”
The visitors were left tottering at 193/7 when Chahar and Bhuvneshwar Kumar stitched an unbeaten stand of 84 runs for the 8th wicket and won the match for the team.
Earlier, Suryakumar Yadav who was playing his second ODI for India notched up a fifty while Krunal Pandya chipped in with valuable 35 off 54. The two teams will now play the third and final ODI at the same venue on Friday.