A masterful 96 not out by Sachin Tendulkar helped India beat Sri Lanka by seven wickets in the third One-Day International at the Barabati stadium in Cuttack on Monday and take a 2-1 lead in the five-match series.
Chasing a modest target of 240, the home team romped to 242 for three with 44 balls to spare, the second batting Powerplay not being required.
The victory enabled India maintain its superior record at the venue -- having won nine of the 13 matches it played, including the last three.
Tendulkar's 104-ball knock was studded with 13 hits to the fence.
Dinesh Karthik's boundary, with two needed for victory, denied Tendulkar of what could have been his 46th ODI hundred and a well-deserved one at that.
Karthik remained unbeaten on 36 that came off only 32 balls (5x4) and shared an unbroken 73 runs partnership for the fourth wicket with Tendulkar.
Earlier, a remarkable comeback by the bowlers helped India gain the upper hand.
A big haul by the spinners, led by man of the match Ravindra Jadeja (four for 32), and Ishant Sharma's twin success in two balls, meant the home side wrested the momentum after the visitors got off to a rollicking start.
Sri Lanka were dismissed for 239 inside their stipulated quota -- 44.2 overs to be precise -- after being 165 for one at one stage (in the 23rd over).
The fact that they left it too late to take the batting Powerplay -- in the 44th over after they were already nine down -- didn't help matters either.
Sri Lanka innings
The first over of the day cost the home team a whopping 14 runs, Tillekeratne Dilshan warming himself up with a couple of boundaries.
Zaheer didn't help his cause by overstepping on as many as three occasions.
The second over by Ishant cost India another 13 runs, with Dilshan going ballistic with three successive hits to the fence.
Upul Tharanga got inspired by Dilshan's belligerent start and hoisted Ishant over long-off for the first six of the Lankan innings.
Dilshan helped himself with another three boundries in the same over, as Ishant's second cost India 19 runs.
The first 50 runs came off just 22 balls, the visitors having prompted a change in bowling as early as the fifth over.
However, the change worked with Ashish Nehra dismissing Dilshan, caught by Karthik, to give India the breakthrough it desperately needed.
Dilshan's 18-ball 41 had as many as 10 hits to the fence.
In came the captain and along with the already-settled Tharanga started building the innings after the terrific start had given them a strong foundation. The first 100 runs came in just 71 balls.
At the first drinks break (14 overs), the visitors were comfortably placed at 112 for one.
After resumption, a push to square leg off Harbhajan helped Tharanga raise his 13th ODI half-century, his third against India. It took the opener just 51 balls to reach the mark.
The 150-run mark was attained inside 20 overs (19.4 to be precise) when Tharanga took a single off Harbhajan.
However, soon after Sehwag gave India its second breakthrough by snapping his opposite number.
Karthik initially fumbled but managed to stump Kumar Sangakkara (46) to reduce the visitors to 165 for two after 23 overs.
The second-wicket partnership with Sangakkara and Tharanga yielded Sri Lanka exactly 100 runs. Sangakkara's 41-ball knock was inclusive of three hits to the fence and a huge one over it.
Two overs later, Ravindra Jadeja, introduced to replace Sehwag, tossed one up and clipped Tharanga's off-stump.
Tharanga compiled a carefully-constructed 81-ball 73, inclusive of six boundaries and a six, but his dismissal came at a time when his side could ill-afford it.
And Harbhajan ensured India maintained the momentum gained by having an out-of-form Mahela Jayawardene (2) caught by Suresh Raina at mid-wicket.
After 26 overs, Sri Lanka were reduced to 173 for four, having been 165 for one at one stage (in the 23rd over).
Thilan Kandamby (22) and Chamara Kapugedera (15) started rebuilding the innings, the former helping his side cross the 200-run mark (in 32.2 overs) with an exquisite hit to the mid-wicket fence off Jadeja.
However, soon after resumption the bowler had the last laugh, cleaning up Kapugedera, to give India its fifth breakthrough.
Sri Lanka were 204 for five after 34.3 overs. It soon became 210 for six (35.5 overs) when Kandamby was cleaned up by Ishant.
The bowler celebrated his success in the best way possible -- by taking another wicket. He had new man Suraj Randiv (0) caught behind.
Jadeja soon trapped Nuwan Kulasekara (10) up front to inflict further damage on the visitors.
After 40 overs, the visitors were precariously placed at 224 for 8, in danger of being bowled out well inside their stipulated quota of overs.
Three over laters, Jadeja cleaned up Ajantha Mendis (6) to reduce the visitors to 236 for nine.
The wicket ensured Jadeja his career-est bowling figures, four for 32 -- bettering the three for 35 against Australia at Nagpur recently.
And when Nehra cleaned up Lasith Malinga (13) it was all over.
Earlier, Sri Lanka won the toss and elected to bat on a wicket that seemed conducive for the same.
The visitors were boosted by the return of Malinga and the inclusion of Kulasekara also bolstered a bowling attack that seemed depleted in the first two matches.
Team India went in for three changes to the line-up that lost the second one-dayer at Nagpur. Ishant Sharma came in place of Praveen Kumar, a fit-again Yuvraj Singh replaced Virat Kohli and Dinesh Karthik was drafted in as a replacement for the suspended MS Dhoni.
The first runs of the Indian innings came off the ninth ball, Tendulkar scoring a boundary off Kulasekara.
The Master Blaster drove Welegedera through extra cover for another boundary in the next over before stand-in captain Virender Sehwag started his charge with three boundaries in Kulasekara's second over -- the first past square leg, the second over fine leg and third an exquisite straight drive.
Lasith Malinga was introduced in the sixth over, replacing Kulasekara whose two overs went for 21, and Sehwag welcomed him with three boundaries. 'Slinga's' first over of the series was an expensive one -- costing his team 16 runs.
Two consecutive boundaries from Sehwag's blade (off Welegedera) helped India cross the 50-run mark in the seventh over and the batsman celebrated the occasion with yet another boundary two balls later.
However, the bowler had the last laugh with the final ball, getting Sehwag caught by Dilshan at backward point. India 55 for one after seven overs.
Sehwag's belligerent 44 came off just 28 balls and included as many as nine hits to the fence.
The captain's dismissal reduced the scoring rate to a certain extent -- the fact that India reached 66 for one after 10 overs against Sri Lanka's 86 for one explains it all.
The second Powerplay was taken immediately and Gambhir found the gap at midwicket to register his first boundary. Tendulkar too helped himself with yet another boundary (his fourth) in that over.
Two successive boundaries by Tendulkar, off Mendis, ensured India passed the 100-run mark in just 88 balls.
After 15 overs, India had made 101 for one. And after 20, they were 126 for one.
Gambhir and Tendulkar continued batting sensibly, sans any risks, as India inched closer to their target.
Then Gambhir was controversially caught and bowled by Suraj Randiv.
The ball appeared to have touched the ground but the batsman, having survived a catch appeal (at short leg) off the previous delivery, was given out.
Gambhir made 32 (52 balls, 3x4) and was involved in a vital 72-run partnership for the second wicket with Tendulkar. India 127 for two in 21.3 overs.
A few overs later, Tendulkar helped himself to his 93rd ODI half century, his 17th against Sri Lanka -- his most against any nation -- and third at the Barabati stadium.
Tendulkar and Yuvraj then batted sensibly to ensure India inched closer to their target without any further blemish -- the third wicket partnership between the duo yielding 42.
Then Yuvraj fell.
Welegedera induced an edge off a wide delivery and Sangakkara making no mistake behind the stumps.
Yuvraj, back in the side after missing the first two matches, made 23 off 40 balls (3x4). India 169 for three after 32.5 overs.
In came Dinesh Karthik and stepped up the pedal right from the start.
A boundary off Kulasekara and another in the next over from Mendis made his intentions clear -- he was trying to make the most of the opportunities in the two matches he plays before captain M S Dhoni returns for the final ODI in New Delhi.
A delicately placed boundary from Tendulkar (off Mendis) enabled India surpass the 200-run mark, in the 38th over.
And it was a mere formality thereafter.