Angelo Mathews struck his highest test score with an unbeaten double century on Wednesday as Sri Lanka left Zimbabwe battling to save the series opener going into the final day at Harare.
Former skipper Mathews eclipsed his previous test best of 160 and finished 200 not out after a marathon knock spanning 468 balls, as Sri Lanka declared their first innings on 515 for nine.
Zimbabwe, playing their first test since November 2018, ended the fourth day on 30 without loss and trailing by 127 runs after Brian Mudzinganyama was drafted in as a concussion substitute for opener Kevin Kasuza.
Debutant Kasuza, who made 63 in the first innings, suffered a delayed concussion after he took a blow to the helmet while fielding at short leg on Tuesday.
Mudzinganyama became the fourth Zimbabwean to make his test debut in this match. He was unbeaten on 14 with Prince Masvaure 15 not out at stumps.
The 32-year-old Mathews brought up his 10th test century, his first since December 2018, in the morning session and steadily added to his total with considerable support from Dhananjaya de Silva and Niroshan Dickwella.
He was dropped shortly after reaching his ton when wicketkeeper Regis Chakabva was unable to hold a difficult chance off left-arm spinner Ainsley Ndlovu.
De Silva and Dickwella both scored 63 but two quick wickets for Sikandar Raza, who finished with 3-62, hastened the declaration as Mathews reached 200 with a sweep to the square leg boundary.
With one day remaining, the visitors appear the only team capable of victory although the pitch looks likely to have the final say.
The two-test tour was only announced by the Sri Lankan cricket board last week.
Zimbabwe were readmitted as an ICC member in October following a three-month suspension over political interference.
The Sri Lanka games represent their first tests since a 1-1 series draw in Bangladesh in November 2018.
Zimbabwe last played a test at home against the West Indies in October 2017.
Report Day 1
Report Day 2
Report Day 3
ZIMBABWE: Prince Masvaure, Kevin Kasuza, Craig Ervine, Kyle Jarvis, Regis Chakabva (wk), Sikandar Raza, Brendan Taylor, Sean Williams (capt), Ainsley Ndlovu, Victor Nyauchi, Donald Tiripano
SRI LANKA: Dimuth Karunaratne (capt), Oshada Fernando, Kusal Mendis, Angelo Mathews, Dinesh Chandimal, Niroshan Dickwella (wk), Dhananjaya de Silva, Suranga Lakmal, Lasith Embuldeniya, Kasun Rajitha, Lahiru Kumara

