Sikandar Raza hit his maiden Test century Monday to stretch Zimbabwe's second-innings lead over Sri Lanka to 350 runs, compounding the woes of the embattled hosts on day four.
The visitors took lunch at 340 for eight with skipper Graeme Cremer (35) batting alongside Donald Tiripano (eight) at Colombo's R Premadasa Stadium.
Overnight batsmen Malcolm Waller (68) and Raza, who started the day on 97, were the two wickets to fall in the morning session after Zimbabwe resumed the day on 252-6 in the one-off Test.
Raza was bowled for 127 after attempting an audacious reverse sweep off left-arm spinner Rangana Herath, who took his overall match tally to 10 with a five-for in each innings.
Waller was the first to go, falling to off-spinner Dilruwan Perera after adding just 11 runs to his overnight score. His wicket ended a 144-run seventh-wicket stand.
The Pakistan-born Raza put Zimbabwe on top after they were left tottering at 23-4 and 59-5 on the third day with Herath rattling the visitors' top-order.
Raza, 31, combined the right dose of caution and aggression to thwart the Sri Lankan bowling attack during his 205-ball stay laced with nine fours and a six.
All-rounder Cremer, who got his maiden five-wicket haul in the Sri Lankan innings, took over the batting charge from Raza to frustrate the opposition bowling with some quick runs.
While Zimbabwe eye their first-ever Test win against Sri Lanka, the hosts are looking for redemption under new Test captain Dinesh Chandimal after a shock loss in the one-day series.
Scoreboard at lunch
Zimbabwe 1st innings 356 (C. Ervine 160; R. Herath 5-116)
Sri Lanka 1st innings 346 (U. Tharanga 71, D. Chandimal 55; G. Cremer 5-125)
Zimbabwe 2nd innings (overnight 252-6; S. Raza 97 not out, M. Waller 57 not out)
H. Masakadza lbw b Herath 7
R. Chakabva b Herath 6
T. Musakanda c Karunaratne b Herath 0
C. Ervine c Karunaratne b Perera 5
S. Williams b Herath 22
S. Raza b Herath 127
P. Moor c sub (Gunathilaka) b Kumara 40
M. Waller c Tharanga b Perera 68
G. Cremer not out 35
D. Tiripano not out 8
Extras (b4, lb10, w7, nb1) 22
Total (8 wickets; 94 overs) 340
Still to bat: C. Mpofu
Fall of wickets: 1-14 (Chakabva), 2-16 (Musakanda), 3-17 (Masakadza), 4-23 (Ervine), 5-59 (Williams), 6-145 (Moor), 7-289 (Waller), 8-306 (Raza)
Bowling: Lakmal 14-0-43-0; Herath 33-5-112-5; Perera 26-2-88-2; L. Kumara 17-3-67-1 (nb1, w3); K. Mendis 4-0-16-0