De Silva came to the wicket with Sri Lanka struggling on 112 for four, but showed greater application than Sri Lanka’s top order as he put on143 for the fifth wicket with Upul Tharanga before finishing unbeaten on100.
The tourists closed the day on 290 for five, and were equally grateful for Tharanga’s 79.
Sri Lanka, who won the first Test by 225 runs, lost four wickets inside 28 overs after they lost the toss and were inserted by Zimbabwe, before the partnership between De Silva and Tharanga pulled them back into the match.