Resuming from their overnight 233 for three, the hosts piled on the runs to close on 455 for seven at the Sinhalese Sports Club, with the left-handed Siriwardana stroking an unbeaten 105.
Opener Udara Jayasundera converted his overnight 124 not out into 142 while Angelo Jayasinghe hit 42 and Sachith Pathirana, 40, to frustrate the West Indies bowlers.
Wicketkeeper Minod Bhanuka hit 101 on Saturday’s second day.
Skipper Jason Holder led three seamers with two wickets each as Kemar Roach (2-58) and Shannon Gabriel (2-85) finished as the successful bowlers.
Jayasundera and Siriwardana, who resumed the day on three, extended their fourth wicket stand to 69 before being separated by Holder.
Left-hander Jayasundera faced 216 balls and counted 19 fours and two sixes and once he departed in the third over after the first drinks break, Siriwardana took control of the innings.
The 29 year old, who batted 149 balls and struck 18 fours, added 93 for the fifth wicket with Jayasinghe and another 65 for the seventh wicket with Pathirana.
Both Jayasinghe and Pathirana played breezy knocks, with the 22-year-old Jayasinghe hitting six fours and a six off 62 deliveries and Pathirana, a 26-year-old left-hander, striking seven fours off 46 balls.
When Gabriel removed Jayasinghe and Lahiru Milantha (0) in successive deliveries half-hour after lunch, West Indies would have been hoping to get through the lower order quickly.
However, Siriwardana and Pathirana stood firm, leaving the Windies bowlers to toil without much success, with the first Test in Galle just days away.