Brendan Taylor made his second half-century of the match to put Zimbabwe in a strong position at lunch on the fourth day of the second Test against Sri Lanka in Harare on Thursday.
Taylor struck a rapid 67 as the hosts added 117 during an extended morning session to go in at 179 for five, their overall lead standing at 292.
Captain Sean Williams, who made a century in the first innings, is 15 not out and all-rounder Sikander Raza has 17.
If Zimbabwe can add another 100 during the afternoon they will stand an excellent chance of winning the Test and squaring the two-match series 1-1.
Lasith Embuldeniya was again the pick of the Sri Lanka bowlers, striking in the third over of the day when Regis Chakabva edged to Dhananjaya de Silva at slip having added just a single to his overnight 14.
Taylor joined Prince Masvaure who was run out for 35 after a needless mix-up over a second run.
Timycen Maruma, who was drafted in as a 'concussion substitute' for Kevin Kasuza who was stretchered off on Wednesday after being hit on the head at short leg, scratched around for 14 balls before being stumped off Embuldeniya for a duck.
At the other end Taylor had picked up quickly from his run-a-ball 62 in the first innings, passing 2,000 runs in Test cricket on his way to 67 from 75 balls.
His innings, which included eight fours and a six, ended when he was on the wrong end of an lbw shout from Lahiru Kumara, the ball looking certain to slide down the leg side.
Williams and Sikander batted through to lunch to set up the platform for an afternoon attack.
Follow Emirates 24|7 on Google News.