Angelo Mathews and Kusal Mendis both struck measured half-centuries as Sri Lanka reached 295 for four at close of play on a stodgy third day of the first Test against Zimbabwe in Harare on Tuesday.
Mendis battled his way to 80 while former skipper Mathews was far from fluent in reaching 92 not out from 253 balls as Sri Lanka closed 63 runs in arrears on the first innings with six wickets in hand.
With two days remaining, the visitors appear to hold the upper hand although the pitch looks likely to have the final say.
The Sri Lankan batsmen struggled hard all day to impose themselves, scoring 82 in the morning, 81 in the afternoon and 90 in the evening while losing a single wicket in each session.
The 24-year-old Mendis struck eight boundaries in his 163-ball innings, including three off successive deliveries from Sikandar Raza, before flashing at an outswinger from debutant Victor Nyauchi that flew to Brendan Taylor at first slip.
It marked a second success for Nyauchi who collected his first wicket in Test cricket during the morning session when Sri Lanka captain Dimuth Karunaratne flicked a low catch to Ainsley Ndlovu at midwicket.
Nyauchi was the pick of the attack, taking two for 38 from 22 overs.
Karunaratne had resumed his partnership with Mendis after bad light stopped Monday's play with Sri Lanka on 42 for one.
They added 60 before Mathews joined Mendis in a third wicket partnership of 92.
Mathews hit three fours and two towering sixes off Ndlovu and the left-arm spin of Zimbabwe captain Sean Williams.
The only wicket to fall in the final session was Dinesh Chandimal who only made 12 before being dismissed on review after umpire Marais Erasmus initially gave him not out.