Put into bat, the Indians rode on the heroics of Kohli (108) and Gambhir (100) to post an imposing 304 for three and then polished off the islanders for 254 in 45.1 overs in a floodlit contest at the Shere Bangla National Stadium.
The highlight of the Indian batting was the belligerent 205-run second wicket partnership between Kohli, who notched up his second successive ODI century, and Gambhir while some lusty hits by captain Mahendra Singh Dhoni (46 not out off 26 balls) and Suresh Raina (30 not out off 17 balls) in the slog overs steered India past the 300 mark.
Sachin Tendulkar, chasing a historic 100th international century, was dismissed for six but the defending champions recovered from the early setback with a solid display on a good batting strip.
Captain Mahela Jayawardene (78) and Kumar Sangakkara (65) were the notable performers but none of the other Sri Lankan batsmen could get going to capitalise on a whirlwind start.
Pacer Irfan Pathan was the pick of the Indian bowlers with 4 for 32 while spinner R Ashwin (3-39) and paceman Vinay Kumar (3-55) were the other wicket-takers.
Sri Lanka will take on Pakistan in their next match on Thursday while India clash with hosts Bangladesh on Friday.
The Sri Lankans got off to a flier as both openers Jayawardene and Tillakaratne Dilshan unleashed a flurry of strokes, picking up Praveen Kumar for special treatment.
Irfan Pathan struck for his team in the fifth over by evicting Dilshan with a rather poor delivery. Dilshan attempted to pull the short-pitched ball but found Virat Kohli at mid-wicket.
Jayawardene and Sangakkara, who joined the action after Dilshan’s dismissal, scored at a very brisk pace as they plundered runs at will in the initial stages.
Captain Jayawardene was particularly severe against the Indian bowlers as he notched up his half century off just 40 balls while Sangakkara was quite content in taking the singles and giving him as much strike as possible.
The two seasoned pros laid the foundation for the run chase with a superb exhibition of strokeplay.
Just when the second wicket partnership was taking dangerous proportions, Irfan Pathan struck again by removing the dangerous Jayawardene who edged an angled delivery to Dhoni behind the stumps. His knock of 78 came off 59 balls and contained ten boundaries and two sixes.
The young Dinesh Chandimal (13) did not last long as he was consumed by off-spinner R Ashwin to peg back the Lankan charge to some extent.
The run rate dropped down quite a bit after the two quick dismissals, allowing the Indians to come back into the game as the asking rate kept increasing.
With runs drying up, Sangakkara went for a slog-sweep but could not connect the shot properly and Ravindra Jadeja took a tumbling catch in the deep.
The game swung in India’s favour when R Vinay Kumar dismissed Nuwan Kulasekara and Chamara Kapudegera off successive deliveries.
Earlier, Kohli and Gambhir took centrestage with a brilliant exhibition of strokeplay.
The duo added 205 runs for the second wicket at a brisk pace of more than five an over to steer the Indian innings after the early fall of Tendulkar. Both the batsmen, in fact, perished in the 43rd over, dismissed by Farveez Mahroof in the space of just one delivery. Interestingly, both the batsmen completed their tenth ODI hundreds.
It was not a very good start to the proceedings for India as Tendulkar (6) continued his frustrating quest for a 100th international century which has extended for more than a year now.
The veteran right-hander was dismissed off a Suranga Lakmal full toss in the sixth over of the innings after facing 19 deliveries.
Tendulkar pushed it low to short extra cover where Mahela Jayawardene caught him comfortably.
But the Indian felt that it was a no ball as it had gone above the waist. The on-field officials referred the matter to the third umpire, who found it to be a legitimate delivery after going through the TV replays.
But his dismissal hardly affected the Indian innings which accelerated after Gambhir was joined by Kohli, the most successful Indian batsman – the only one to get a hundred – in what was a disastrous tour of Australia.
Gambhir got a life in the 17th over when he was dropped by Dinesh Chandimal in the long on region off Seekkuge Prasanna’s bowling.
The left-hander was on 36 when he chipped one in the air but Chandimal, who ran a considerably to his left to get to the ball, could not balance himself after diving in front to grab the ball, which popped out of his hands as he touched the ground.
Gambhir and Kohli completed a century stand off 123 balls which was the 70th overall for the second wicket for India. Only Australia, with 77 century stands for the second wicket, have more.
They didn’t stop at that and bettered the stand with some thoughtful strokeplay and restraint. Both the naturally aggressive batsmen were patient in their approach and did not succumb to the temptation of extravagant shots.
Both the batsmen knocked off seven fours each. While Kholi took 120 deliveries, Gambhir’s innings came off 118 balls.
The identical innings came to an end almost at the same time with Gambhir holing out to Upul Tharanga in the long on region while Kohli was caught by Lahiru Thirimanne in the extra cover region.
Down the order, skipper Mahendra Singh Dhoni (46) and Suresh Raina (30) provided some entertainment for the sparse crowd. The duo shared 10 fours and a couple of sixes between them during an unbeaten 78-run stand that came off 43 deliveries.