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-e-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 Tendilkar,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 runrate 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.