Angelo Mathews was 92 not out as Sri Lanka closed on 295-4 in reply to Zimbabwe's 358 on day three of the first test on Tuesday.
Kusal Mendis added 80 as Sri Lanka reached stumps just 63 runs in arrears on the first innings, and set to make Zimbabwe chase.
“Zimbabwe bowled a good line and length and the outfield was a bit slow,” Mendis said. “I really hope that Angelo can bat on tomorrow for a big score.”
Mathews is closing on his 10th century, and first since December 2018 against New Zealand. In at 92-2, he endured a fast bowling onslaught from debutant Victor Nyauchi and Kyle Jarvis.
Mathews asserted himself against the spinners to smash seven boundaries and two sixes in facing 253 balls so far.
Sri Lanka resumed the day on 42-1, adding 50 runs in the first session at Harare Sports Club before Dimuth Karunaratne gifted Nyauchi his first wicket in test cricket. The Sri Lanka captain flicked a full delivery for another debutant Ainsley Ndlovu to take a catch at short midwicket.
“Claiming the wicket of the Sri Lanka captain on debut is something that I will keep in mind for a long time," Nyauchi said. "I’m someone who likes challenges, so I was just telling myself to bowl normal length. The pitch isn’t doing well so I was just going for line and length.”
Mendis and Mathews put on a 92-run third-wicket partnership until Mendis was out nicking Nyauchi to Brendan Taylor at first slip. Nyauchi has 2-38.
Dinesh Chandimal was the only other wicket to fall, on 12, after he gave spinner and captain Sean Williams a return catch.