Mohammed Siraj and Kuldeep Yadav took three wickets apiece for India before KL Rahul's unbeaten half-century sealed a four-wicket win over Sri Lanka to seal the ODI series.
The tourists collapsed from 102-1 to 215 all out in the 40th over after Dasun Shanaka won the toss and elected to bat first at Eden Gardens on Thursday.
That was not enough to avoid going 2-0 down, KL Rahul top scoring with an unbeaten 64 to get India home with 40 balls to spare.
Nuwanidu Fernando made 50 on his debut, putting on 73 with Kusal Mendis (34) before Sri Lanka's batting frailties were exposed.
Dhananjaya de Silva was bowled first ball by Axar Patel after Kuldeep (3-51) trapped Kusal leg before and Dunith Wellalage (32) got a start but fell to Siraj.
Umran Malik (2-48) also made an impact with the ball and Siraj (3-39) finished off the innings by cleaning up Lahiru Kumara.
Rohit Sharma and Shubman Gil made only 17 and 21 respectively before Virat Kohli played on to a delivery from Kumara for just four after making a century in the first ODI.
India were 86-4 in the 15th over when Shreyas Iyer departed, but Rahul and Hardik Pandya (36) steadied the ship.
Sri Lanka were in still in with a chance of levelling the series after Chamika Karunaratne (2-51) saw the back of Pandya and Axar fell for 21, but Rahul and Kuldeep saw India home.
A victory by wickets for #TeamIndia in the second #INDvSL ODI here in Kolkata and the series is sealed
— BCCI (@BCCI) January 12, 2023
Scorecard https://t.co/jm3ulz5Yr1 @mastercardindia pic.twitter.com/f8HvDZRJIY
Promising start for Nuwanidu
It was an impressive start to his international career for 23-year-old opening batter Nuwanidu.
He struck six boundaries in an assured 63-ball knock at the top of the order against an excellent attack.
Nuwanidu will be kicking himself over the manner of his soft dismissal, Charith Asalanka sending him back after he set off for a run that was never there.
Rahul holds India run chase together
It was the experienced Rahul who provided the glue to keep India's run chase together in the middle of the order.
After coming in at number five, he spent over two and half hours at the crease in a responsible innings, waiting for any loose deliveries as he found the rope just six times and rotated the strike well.
That is 12 ODI wins in 13 matches at home to Sri Lanka for India and 10 multi-game bilateral series victories out of 11 over the Asia Cup champions on home soil.