De Silva shared partnerships of 68 for the fourth wicket with Dinesh Chandimal (54) and 99 for the sixth wicket with Sonal Dinusha (43), after Sri Lanka crashed to 3-42 in Antigua.
The skipper was finally out for 120 in the last session after adding a further 64 runs for the seventh wicket with Milan Rathnayake (27).
Sri Lanka were 7-272 when de Silva was out in the 65th over and their innings ended seven overs later when Jayden Seales and Justin Greaves wrapped up the tail.
West Indies openers John Campbell and Brandon King had to see out a single over before stumps to finish the day on 0-0 in the opening game of the two-match series.
Greaves took 3-39, Alzarri Joseph and Shamar Joseph picked up two wickets each while Kemar Roach claimed 2-32 to edge closer to 300 Test victims. He now has 296 at an average of 27.02.
They were all part of a pace-heavy lineup which encouraged the West Indies to bowl on winning the toss.
The decision seemed a sound one when Alzarri Joseph removed Nishan Madushka and Kamindu Mendis in the 10th over.
The pitch favoured the quicks early but settled in the afternoon as de Silva built his century from 150 balls. Though he was watchful, Sri Lanka scored throughout the day at more than four runs per over.
Roach and Seales found movement with the new ball and Roach dismissed Pathum Nissanka (2) with the last ball of the first over.
Alzarri Joseph's quick double strike set Sri Lanka back on their heels after a brisk start and Shamar Joseph later removed Chandimal and Kusal Mendis inside four balls in the 26th over.
De Silva built on the foundation laid by Chandimal, whose 54 came from 67 balls and included eight boundaries. Sri Lanka's captain played straight early on but, with growing confidence, began to take runs square of the wicket, unruffled by the short ball.
De Silva hit 17 boundaries before falling to a full delivery from Greaves which popped to Brandon King as he tried to turn it to the leg side.
Earlier, Madushka (23) greeted Alzarri Joseph with a six over point before the tall fast bowler struck twice in two balls.
Madushka was out plumb leg before wicket when he tried to flick the ball to the on-side and Kamindu Mendis edged Joseph to first slip off the next ball.
De Silva survived the hat-trick ball and grew in confidence with Chandimal, providing the backbone of an innings where two of Sri Lanka's top six were out for ducks.