Cremer had De Silva caught and bowled for 127 and also trapped Dilruwan Perera lbw for 34, but Sri Lanka still added 124 runs in the morning session to go to lunch on 414 for seven.
Zimbabwe's attempts to get stuck into the Sri Lankan tail early on day two were hampered by further dropped catches.
The tourists resumed on 290 for five, and De Silva saw a return catch put down by fast bowler Carl Mumba after he had added just 13 runs to his overnight score of 100.
Allrounder Asela Gunaratne proved the bedrock for Sri Lanka's progress, moving from 13 at the start of the day to 64 not out at lunch.
Disclaimer: No Business Standard Journalist was involved in creation of this content
