Published: 2017-12-06 22:14:06 BdST
Playing his first match in the series, de Silva braved a thigh injury to score 119 before retiring hurt.
Debutant Silva and Niroshan Dickwella then batted out the final session as the tourists secured their second draw of the series at the Feroz Shah Kotla Stadium.
The tourists, who finished on 299-5, could not chase down the 410-run victory target but battled suprerbly to salvage some pride after being outplayed in the series.
India's ninth straight Test series triumph puts the world number one side into an elite club with Australia and England.
"When you're not able to finish off in the second innings after having them three down on day four is disappointing," India captain Virat Kohli said at the presentation ceremony.
"But they played well, they showed composure and confidence," added the batsman who was given the man-of-the-match and man-of-the-series awards.
Sri Lanka resistance
Resuming the final day on a precarious 31-3, Sri Lanka lost Angelo Mathews early in the morning session but de Silva and Dinesh Chandimal resisted India for two hours as the smog-hit Test finally saw a mostly sunny day.
India tasted success in the sixth over of the day when Mathews was caught in the slip off Ravindra Jadeja for one.
Dropped three times in his first innings knock of 111, Mathews was not so lucky in the second, given out on a no-ball which went undetected by umpire Joel Wilson.
Jadeja bowled Chandimal, then on 24, with a drifted, sharply-turning ball but replays confirmed the left-arm spinner had marginally overstepped.
Nimble-footed de Silva scored freely, especially against the spinners, while Chandimal looked content playing second fiddle.
Ashwin ended the 112-run partnership when he lured Chandimal out of the crease and spun the ball past his bat to hit the stumps.
The Sri Lanka captain, who smashed a career-best 164 in the first innings, made 36.
Ashwin had a chance to catch de Silva, then on 110, off his own bowling but the off-spinner spilled the full-blooded drive.
By then, de Silva was struggling with his thigh injury and the 26-year-old eventually hobbled off the field, passing on the baton to Silva, who proved equal to the challenge.
De Silva's third Test century contained 15 boundaries and a six off Ashwin.
Silva and Niroshan Dickwella (44 not out) raised 94 runs, denying India a wicket in the final session, before the teams shook hands.
"It was a really good series, apart from the second one (Test). We learnt a lot," Chandimal said.
"Dhananjaya and Roshen batted really well in tough conditions against some great bowlers... Dickwella played a totally different brand of cricket. (I'm) happy with the way we played today."