A blazing innings of 45 from Elton Chigumbura rescued Zimbabwe as they closed on 158 for four on day two of the second and final Test against Bangladesh at Harare Sports Club on Friday.
Chigumbura, who was the star with the ball in the Bangladesh first innings, put on an unbeaten 61-run stand for the fifth wicket with Malcolm Waller (30 not out) to almost certainly help Zimbabwe avoid the follow-on.
In reply to Bangladesh's total of 391, Zimbabwe had slumped to 97 for four before Chigumbura strode to the wicket and started thrashing away.
Bangladesh added another 91 runs to their overnight score of 300 for six, the charge on Friday led by Nasir Hossain's fifth Test half-century.
Hossain had amassed 77 before he was the ninth wicket to fall.
Number 11 Robiul Islam entertained the crowd with an unbeaten 24 from 18 balls to take Bangladesh to 391. Shakib Al Hasan (81) top-scored in the innings, while there was also a valuable 60 from skipper Mushfiqur Rahim.
The pick of the home bowlers was Chigumbura, who returned figures of three for 75.
Zimbabwe's problems at the top of the order continued as they lost three quick wickets.
Captain Brendan Taylor, who scored centuries in each innings in the first Test, looked in good touch again he compiled a patient 36 before trying an uncharacteristically risky shot.
He attempted to pull a delivery from off-spinner Sohag Gazi to the mid-wicket boundary but picked out Shakib in the deep instead.
At that stage the follow-on target of 192 looked a long way off for the home side but barring a big collapse on Saturday, they will get the 34 runs they need to make Bangladesh bat again.
Zimbabwe lead the two-match series 1-0 after an emphatic 335-run victory in the first Test last week.
Scorecard
Bangladesh first innings
Tamim Iqbal run out 49
Jahurul Islam c Waller b Meth 24
Mohammad Asharful c Cremer b Masakadza 4
Mominul Haque c S Masakadza b Chigumbura 23
Shakib Al Hasan c Mutumbami b Chigumbura 81
Mushfiqur Rahim lbw b Jarvis 60
Nasir Hossain b Cremer 77
Ziaur Rahman lbw Meth 14
Sohag Gazi c Chigumbura b Cremer 21
Sajidul Islam c Mutumbami b Chigumbura 0
Robiul Islam not out 24
Extras (b-2, lb-7, w-1, nb-4) 14
Total (all out, 113.2 overs) 391
Fall of wickets: 1-44, 2-58, 3-102, 4-125, 5-248, 6-280, 7-313, 8-364, 9-367
Bowling: Jarvis 25-4-105-1, Meth 22-7-41-2, S Masakadza 17-2-52-1, E Chigumbura 24.2-7-75-3, Cremer 25-3-109-2.
Zimbabwe first innings
V Sibanda c Mushfiqur Rahim b Robiul Islam 10
R Chakabva c Mushfiqur Rahim b Robiul Islam 12
H Masakadza b Shakib Al Hasan 14
B Taylor c Shakib Al Hasan b Sohag Gazi 36
M Waller not out 30
E Chigumbura not out 45
Extras (b-4, lb-7) 11
Total (for four wickets, 62 overs) 158
Fall of wickets: 1-23, 2-26, 3-45, 4-97
Bowling: Robiul Islam 19-9-34-2, Sajidul Islam 14-5-39-0, Ziaur Rahman 5-3-5-0, Shakib Al Hasan 12-3-33-1, Sohag Gazi 10-1-29-1, Mohammad Ashraful 1-1-0-0.
Photograph: Dinuka Liyanawatte/Reuters