If the bowlers, led by Umesh Yadav (4-53) and Axar Patel (3-40), set up the win by restricting the visitors to 242 all out on a good batting track, then the Shikhar Dhawan (91 off 79 balls) inspired batting line-up did its job to make the opponents look ordinary yet again. Teams: India: Virat Kohli (c), Shikhar Dhawan, Ajinkya Rahane, Ambati Rayudu, Suresh Raina, Wriddhimaan Saha, R Ashwin, Umesh Yadav, Dhawal Kulkarni, Ishant Sharma, Axar Patel.
By virtue of this win India took an unassailable 3-0 lead in the five-match series. The next ODI between the two sides will be played at Kolkata on Thursday.
Earlier in overcast conditions, Mahela Jayawardene struck a fluent century to wage a lone battle as the Islanders managed a respectable score of 242 all out in 48.2 overs after being reduced to seven for two and 158 for seven.
In reply, India capitalised on a 62-run opening stand between Ajinkya Rahane (31) and Dhawan and skipper Virat Kohli's sublime 53 to canter to their target in 44.1 overs at the Rajiv Gandhi International Stadium at Uppal.
Rahane was finally scalped by Thisara Perera in the 12th over after the opener tried to fiddle with a rising delivery, giving away a simple catch at first slip.
Dhawan carried on the good work alongwith with last match centurion Ambati Rayudu (35) as the duo stitched another 69-run partnership to put the hosts in a comfortable position. The left-handed Dhawan reached his 2000-run mark in ODIs at the start of the 23rd over and soon hit a six to register his 11th fifty.
Rayudu though lost his wicket post a silly-looking mix up when the former Hyderabad player was left stranded at the non-strikers end as an Angelo Mathews and Kumar Sangakkara combination did the rest.
But Dhawan (283 runs in 3 innings) continued to be the top-scorer in the series so far as the left-hander enthralled the crowd with eight fours and a six to make India's win look like a stroll in the park.
Skipper Kohli (53 runs - 32nd ODI fifty) also joined the party to ably guide the Men in Blue in Mahendra Singh Dhoni's absence.
The Delhi dasher, who became the fastest player to register 6000 runs in 144 ODIs, played to the galleries after displaying a few wristy flicks that brought memories of VVS Laxman back in the minds of one and all.
India took the batting powerplay come the 33rd over as Dhawan-Kohli combination managed a 70-run stand to help hasten the proceedings.
Dhawan was finally caught behind off Nuwan Kulasekara in what seemd like an umpiring misjudgment as from the replays one could only see the ball brushing the helmet en route to the wicketkeeper.
Kohli also departed while trying to heave a six but was caught at long-on off Tillakaratne Dilshan.
Wicketkeeper-batsman Wriddhiman Saha (6) hit the winning runs with a boundary as Suresh Raina (18) was at the non-strikers end.
Earlier, pace spearhead Umesh Yadav drew the first blood after getting opener Kusal Perera (4) caught behind on the final delivery of the first over.
The medium-pacer was soon on a hat-trick, which was averted by Jayawardene, after sending the dangerous Kumar Sangakkara back in the pavilion for naught on the very first ball of his second over. Jayawardene and Dilshan (53) then combined caution with the right dose of aggression to stitch up a 105-run for the third wicket – the highlight of the Lankan innings.
Rising left-arm orthodox bowler, Axar Patel also spun a web around the batsmen after the Lankans opted for the batting powerplay between overs 30 and 35.
Opting for the batting powerplays between overs 30 and 35 did not help the Islanders as skipper Angelo Mathews (10) top edged Axar's left-arm orthodox to Kohli at mid-off.
The young Gujarat player got three wickets in the space of 18 deliveries, including the wicket of skipper Angelo Mathews, to allow the Lankan side score just 16 runs in the powerplay overs.
Sri Lanka continued to lose the plot as Umesh struck again, in his comeback spell to get Thisara Perera (1) caught at extra cover via a leading edge from the left-hander's bat.
Jayawardene, who completed 12,000 runs in ODIs, continued to fight on as the former skipper got his 100 off 109 balls with a six off Axar in the 40th over.
Jayawardene though got support from No.9 batsman Seekkuge Prasanna (29) as the duo stitched a 67-run partnership for the eight-wicket to give some respectibilty after the score read 158 for seven.
Ravichandran Ashwin finally got the veteran batsman stumped to end his 124-ball stay, which was laced with 12 fours and a six.
Sri Lanka though could not last their full quota of overs for the second time in the three matches gone by.
Sri Lanka: Angelo Mathews (c), Kusal Perera, Tillakaratne Dilshan, Kumar Sangakkara, Mahela Jayawardene, Ashan Priyanjan, Thisara Perera, Nuwan Kulasekara, Seekkug Prasanna, Lahiru Gamage, Chaturanga de Silva.
If the bowlers, led by Umesh Yadav (4-53) and Axar Patel (3-40), set up the win by restricting the visitors to 242 all out on a good batting track, then the Shikhar Dhawan (91 off 79 balls) inspired batting line-up did its job to make the opponents look ordinary yet again.
India: Virat Kohli (c), Shikhar Dhawan, Ajinkya Rahane, Ambati Rayudu, Suresh Raina, Wriddhimaan Saha, R Ashwin, Umesh Yadav, Dhawal Kulkarni, Ishant Sharma, Axar Patel.