Harare - Angelo Mathews struck his highest Test score with an unbeaten 176 as Sri Lanka built a sizeable lead over Zimbabwe on the fourth day of the series opener at Harare on Wednesday.
Former skipper Mathews eclipsed his previous Test best of 160 against England in 2014 with a marathon knock spanning 427 balls, featuring 15 fours and two sixes.
Sri Lanka reached tea on 466 for six to take a lead of 108 runs over Zimbabwe's first innings total of 358.
The 32-year-old Mathews brought up his 10th Test century, his first since December 2018, with a single tucked towards square leg off Kyle Jarvis in the morning session.
He received considerable support from Dhananjaya de Silva, who made 63 before he was caught at mid-on after mistiming a lofted drive off Victor Nyauchi.
Regis Chakabva put down a difficult chance offered by Mathews shortly after he reached his century, the Zimbabwe wicketkeeper unable to hold an edge off left-arm spinner Ainsley Ndlovu.
Niroshan Dickwella, who was dropped by Craig Ervine on 45, added 63 before he fell lbw to Sikandar Raza just before tea to break a partnership worth 136 runs.
Zimbabwe opening batsman Kevin Kasuza was ruled out of the rest of the match due to concussion after he was struck on the back of the helmet at short leg by a pull from Kusal Mendis on day three.
No replacement has yet been named for Kasuza, one of three Test debutants in the Zimbabwe team.
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.