Zimbabwe all-rounder Sikandar Raza picked up a career-best seven wickets as the hosts built a 175-run lead over Sri Lanka on the third day of the second Test in Harare on Wednesday.
Off-spinner Raza claimed three wickets apiece in the morning and afternoon sessions to finish with figures of 7 for 113 as Sri Lanka were bowled out for 293.
Raza's haul was the second best for Zimbabwe in Test cricket, after former legbreak bowler Paul Strang's eight for 109 against New Zealand at Bulawayo in 2000.
Rain again brought an early end to the day as Zimbabwe reached 62 for 1 at stumps in their second innings with Prince Masvaure unbeaten on 26.
Craig Ervine was the only Zimbabwe wicket to fall after tea when he edged behind off Vishwa Fernando for 13. Play will start early on Thursday at 0735 GMT.
For the second Test in succession Zimbabwe were forced to make a concussion substitution after opening batsman Kevin Kasuza was again struck on the helmet while fielding at short leg.
Kasuza was diagnosed with mild concussion and will take no further part in the match. All-rounder Timycen Maruma has been drafted in to take his place.
Kusal Mendis (22) was the first man to go after Sri Lanka resumed on their overnight score of 122 for two, caught off the bowling of Raza after a firm pull shot hit Kasuza and looped to Carl Mumba at square leg.
Kasuza collapsed to the ground and had to be taken off the field on a stretcher. He was then sent to hospital for scans, having been substituted out of the first Test after suffering a delayed concussion following a similar incident.
Raza snaffled a return catch to remove Dinesh Chandimal for six and then bowled a well-set Dhananjaya de Silva on the stroke of lunch for 42.
The Pakistan-born Raza trapped Niroshan Dickwella early in the afternoon session to complete his five-wicket haul before Suranga Lakmal chipped tamely to short mid-on.
Angelo Mathews, who made his first Test double century in the series opener, top-scored for Sri Lanka with a gritty 64 from 158 balls before he was caught behind down the legside off Mumba.
A brilliant diving catch by substitute fielder Brian Mudzinganyama gave Raza his seventh wicket and Victor Nyauchi had Vishwa Fernando last man out for a battling 38.
Sri Lanka lead the two-Test series 1-0 after winning the first match by 10 wickets.