Kohli (144) teamed up with Dinesh Karthik (106 not out) to rescue India from a wobbly start with a 186-run stand for the fifth wicket in just 23.2 overs to chase down a huge target of 334 with one over to spare.
India were reduced to 62 for three in the 13th over and then to 110 for four in the 21st over before Kohli and Karthik resurrected the innings and sent the Sri Lankan bowlers for a leatherhunt in the second part of their run chase.
Kohli, who was coming at the back of a strong performance in the recent Indian Premier League, struck 11 fours and three sixes in his 120-ball flawless innings.
Coming in the second over at the team score of five for one, Kohli was cautious at the start of his innings as the situation demanded but played some delightful strokes after he settled down.
More From This Section
Karthik was more than an able partner to Kohli. He gave more strike to Kohli during their partnership, but at the same time also did not let it go any chance of scoring boundaries. He ended the match in style with a four as India reach 337 for five in 49 overs.
Captain Mahendra Singh Dhoni also got some useful time at the middle as he remained not out on 18 from 17 balls, coming after Kohli's departure in the 44th over. Suresh Raina chipped in with a quickfire 31-ball 34.
India play their second warm-up game against Australia on June 4 in Cardiff before opening their campaign in the main tournament against South Africa at the same venue two days later.