Put into field under overcast conditions, Umesh Yadav (4-53) had the best figures while Axar Patel (3-40) continued to impress with Jayawardene scoring a standout 118.
Pace spearhead Yadav drew 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 as the visitors were reduced to 7/2.
Dilshan got his 39th ODI fifty with a boundary off Ravichandran Ashwin (1-43), which also brought up Lanka's 100 in the 23rd over.
Soon Jayawardene got to his 75th ODI half-century but Kohli's move to bring in Rayudu's (1-16) off-spin from Ashwin's end did the trick for India as the occasional bowler got Dilshan caught at extra cover by Ajinkya Rahane to povide the much-needed breakthrough.