Sri Lanka's Mahela Jayawardene and Kumar Sangakkara were top scorers for their team with 68 and 65 runs, respectively.
For India, Irfan Pathan was the pick of the bowlers, taking 4-32.
Virat Kohli (108) and left-handed opener Gautam Gambhir (100) had scored centuries as India posted a challenging 304-3 before bowling Sri Lanka out for 254 in the day-night match.
It was Kohli's second successive hundred against Sri Lanka, having made an umbeaten 133 at Hobart in a recent triangular one-day series in Australia.
India plundered 78 runs off the last 7.1 overs, with skipper Mahendra Singh Dhoni smashing a 26-ball 46 not out and Suresh Raina an unbeaten 30 off just 17 balls.
India lost batting superstar Sachin Tendulkar early in the innings before Gambhir and Kohli bolstered their team's position with their impressive knocks on a slow pitch.
Tendulkar, chasing an elusive 100th international century, could make only six runs before pushing a Suranga Lakmal full-toss straight to skipper Mahela Jayawardene in the covers.
Sri Lanka then had to wait for 37 overs to get their next wicket as Gambhir and Kohli continued to gather runs comfortably against both pace and spin.
The pair reached their centuries in the 42nd over before both falling in the next over off seamer Farveez Maharoof as they bid to step up the run-rate.
Gambhir, dropped on 36 by Dinesh Chandimal at long-on off, made the most of the chance and hit seven fours, while Kohli also struck the same number of boundaries.
Maharoof was the most successful bowler with 2-57 off 10 overs.
Pakistan beat Bangladesh by 21 runs in the opening match of the tournament on Sunday.
Each side will play the other once in the round-robin league, with the top two advancing to the final on March 22.
COMMENTS (6)
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ
HOPE PAKISTAN BEATS INDIA.LETS JUST SUPPORT OUR TEAM NO MATTER hos it is
hope pakistan beats india.LETS JUST SUPPORT PAKISTAN.
This match was fixed, Indian players were paid heavily to beat Sri Lanka.
The final will be between India and Pakistan and later will win the match. In return Pakistan will allow Tendulkar to score a century. Pakistan's goodwill gesture shown in world cup final is not forgotton by cricket mafia.
@Cricket Fan: If you have played any competitive cricket you won't be laughing, have you ever hit at-least 50 runs in an innings?? you will know how hard it is to make... it's only once in a while players like Sachin come in any sports...The Don Bradman was out for a duck in his last innings and that made his average 99.93 not 100 - does that make Don Bradman achievement less important?? Sachin is our pride and envy for our enemy...
not possible 100th century for tendulkar...ultimately he will retire and remember this more than his records he achieved and compiled...hahaha