The first match in Guwahati was called off without a ball being bowled due to rain and damp pitch. Virat Kohli and his boys will now look to seal the series in the final match of the series in Pune on Friday.
Chasing a reasonable 143 for victory, Kohli (30 not out) smashed a six in the 18th over to seal the deal for the rampaging hosts with 15 balls to spare.
K.L. Rahul scored 45, Shreyas Iyer got 34 and the returning Shikhar Dhawan made 32 as India never really looked in any sort of trouble after their bowlers fired in unison to keep the Lankans in check.
The two openers, vying for the second opener's slot along with Rohit Sharma for the World T20 later this year, got India off to a solid start. Rahul looked good, hitting six fours before his ambition got the better of him as leg-spinner Wanindu Hasaranga cleaned him up with a delivery wide of the crease in the 10th over.
Dhawan followed suit soon, trapped in front by Hasaranga which was confirmed by a successful review after the umpire ruled the southpaw not out.
Shreyas Iyer, promoted to No. 3, and Virat Kohli then made short work of the remaining runs as the former took 17 off Hasaranga in the 16th over with the latter hitting Sri Lanka skipper Lasith Malinga for 16 in the next over.
Iyer was caught by Dasun Shanaka at square-leg off Lahiru Kumara, but it was all over for Sri Lanka by then as Kohli whipped a six over long leg off Kumara to win it in style with Rishabh Pant (1 not out) at the other end.
Earlier, the bowlers put up a good show with Navdeep Saini shining bright as India restricted Sri Lanka to 142/9. All eyes were on the returning Bumrah after India captain Virat Kohli decided to field first.
Bumrah, who has been out of action after India's tour of the West Indies in July-August last year due to a stress fracture on his back, started off with a wide in the first ball of the match and was hit for a four in the second as he finished conceding seven runs.
Danushka Gunathilaka and Avishka Fernando hit boundaries off him in the fourth over as India's premier pacer looked a bit rusty starting off, but in the end bowled a superbly disguised slower to castle Dasun Shanaka in the 17th over.
Bumrah was taken for 12 in the final over by Wanindu Hasaranga (16 not out) who hit a hat-trick of fours to end the innings with a flourish as the fast bowler returned figures of 1/31 in his four overs.
Shardul Thakur (3/23) was the pick of the bowlers for the hosts but it was Saini (2/18) who impressed the most while Kuldeep Yadav (2/38) also picked up two wickets.
For the Lankans, Kusal Perera top-scored with a 28-ball 34 (6x3).
The Sri Lanka openers looked good against India's pace trio of Bumrah, Shardul and Saini before Kohli went to Washington Sundar (1/29) and the spinner did the trick as Fernando (22) hit straight to mid-off where Saini took a simple catch.
Sri Lanka raced to 48/1 after six overs but just as Gunathilaka was looking good, thumping Shardul Thakur for a four down mid-off in the sixth over, a Navdeep Saini thunderbolt at 147.5 kph beat him all ends up to rattle the stumps. He was gone for 20.
In-form Perera welcomed Kuldeep with a six over deep midwicket in the 12th over. But the chinaman, who recently became the first Indian to take two hat-tricks in international cricket, had the last laugh as he got Oshada Fernando (10) stumped in the third ball of the same over.
Perera reverse pulled Kuldeep for a six in the first ball of the 14th over as Sri Lanka looked to up the ante. But in the very next delivery Kuldeep once again emerged victorious as the batsman holed out to Shikhar Dhawan at long-on while trying to clear the boundary.
Bhanuka Rajapaksa (9) was caught behind off Saini whose searing pace caused the batters a lot of trouble as Sri Lanka reached 104/5 after 15 overs.
In the last five overs, the visitors managed just 34 runs, losing four wickets as Shardul picked up three in quick succession.
Brief scores: Sri Lanka 142/9 in 20 overs (Kusal Perera 34; Shardul Thakur 3/23) India 144/3 in 17.3 overs (K.L. Rahul 45; Wanindu Hasaranga 2/30)