(CNN) -- Sachin Tendulkar was undefeated on 96 as India successfully chased Sri Lanka's modest 239 to claim a seven-wicket victory in the third one-day international in Cuttack.
It gives the home side a 2-1 lead in the best-of-five series, a result which looked unlikely as the tourists made a flying start batting first after winning the toss.
In-form opener Tillakaratne Dilshan hit 41 off just 18 balls with Upul Tharanga (73) and Kumar Sangakkara (46) also contributed as the Indian bowling attack was flayed to all corners.
Openers Zaheer Khan and Ishant Sharma proved expensive, but the introduction of first change Ashish Nehra and off-spinner Harbhajan Singh at least put a temporary brake on the Sri Lankans.
Nehra ended Dilshan's brutal stay and Virender Sehwag removed the dangerous Sangakarra after a stand of 100 with Tharanga.
Sri Lanka were 165 for two in the 23rd over at that stage but up stepped spinner Ravindra Jadeja to bowl his crucial spell and he dismissed Tharanga with one that turned sharply from outside off and Mahela Jayawardene went cheaply when he pulled a short ball from Harbhajan to be caught at short midwicket.
Jadeja then ended a stand between Thilina Kandamby (22) and Chamara Kapugedera (15) by bowling Kapugedera who played a loose shot to inside edge onto his stumps.
Kandamby and Suraj Randiv were removed in successive balls by a revived Ishant, who bowled a much-improved second spell.
The tail went quickly and Jadeja finished his spell with the wickets of Nuwan Kulasekara and Ajantha Mendis to finish with 4-32.
Sehwag, after his crucial bowling intervention, dominated and opening stand of 55 with Tendulkar.
He had hit nine boundaries in a 28-ball stay when he attempted to cut Chanaka Welegedara for another boundary but only found Dilshan at point.
Gautam Gambhir (32) continued the chase and added 72 for the second wicket with Tendulkar before falling to Suraj Randiv.
Tendulkar saw it home with further stands with Yuvraj Singh (23) and Dinesh Karthik (36 not out) as India were home with over seven overs to spare.
Sehwag, standing in as captain for the banned MS Dhoni, paid compliment to his bowlers.
"With the kind of start they got, I was praying they wouldn't get 350 or 400 on the board," he said.
"But we were constantly looking to take wickets and Ashish Nehra did a fantastic job in the powerplay.
"Once he got (Tillakaratne) Dilshan out, Harbhajan (Singh) and (Ravindra) Jadeja did their job very well and the game turned on its head."
Dhoni had to sit out the match after being punished for his side's slow over rate in the defeat in Nagpur in the second game in the series.
In other cricket news on Monday, Australia added Phillip Hughes to their squad for the Boxing Day Test against Pakistan as cover for injured captain Ricky Ponting.