Former captain Kohli has been in blazing form since coming out of an extended lean patch last year when he spoke about his mental struggles during the phase.

"Ever since I came back from the break, I am feeling good and I don't have desperation anymore to get to a milestone," Kohli said.

"I want to continue being in this space where I am relaxed and content with how I am playing, and that for me is the most important thing. Today I was happy to be batting out there, and in that space I end up playing my best cricket."

Kohli, 34, has amassed 12,754 runs in 268 ODI matches for India, behind Sachin Tendulkar (18,426), Kumar Sangakkara (14,234), Ricky Ponting (13,704) and Sanath Jayasuriya (13,430).

Gill put on 95 runs for the opening wicket with skipper Rohit Sharma, who made 42, to set the tone for the team's batting domination.

Rohit missed out on a fifty after he fell to Chamika Karunaratne but Gill kept up the attack with Kohli and raised his second ODI hundred, celebrating it with a fist bump.

Siraj 'rare talent'

Gill smashed Jeffrey Vandersay for four fours in the over after the ton, but was soon bowled off a slower delivery from Kasun Rajitha.

Kohli put on another century partnership with Shreyas Iyer, who hit 38, and went on to celebrate the ton with his arms and bat raised to an applauding crowd.

The ball before Kohli clinched his hundred saw a nasty collision at the square-leg boundary between Vandersay and Ashen Bandara, with both fielders stretchered off.

Dunith Wellalage came in as a concussion substitute for Vandersay and batted for the tourists at number eight.

Kohli changed gears after his 46th ODI century -- three behind Tendulkar's all-time record of 49 -- as he smashed Karunaratne for two successive sixes.

Kohli reached his 150 in 106 balls and finished off with 13 fours and eight sixes.

Sri Lanka were never in the chase after Siraj struck three times in his first five overs including the wickets of Avishka Fernando, for one, and Kusal Mendis, bowled on four.

The tourists kept losing wickets to Siraj's pace and swing and the quick also ran out Karunaratne with a direct throw that caught the batsman off guard and out of his crease at the striker's end.

"The way he was swinging the ball, he is a rare talent," Rohit said of his pace bowler.

"The way he has come up in the last few years is good to see. He has gone from strength to strength and that's really good for Indian cricket."

Mohammed Shami and Kuldeep Yadav took two wickets each to flatten Sri Lanka's batting with 28 overs to spare, with the tourists losing nine wickets and injured Bandara not batting.

India now host New Zealand for three ODI matches and three Twenty20 internationals with the opening 50-over match in Hyderabad on Wednesday.