Half-centuries from Kraigg Brathwaite and Marlon Samuels steered a battling West Indies to 147 for two at the close on day three of the second Test against South Africa on Sunday.
The tourists went through the final session at St George's Park, brought to an early finish by bad light, without losing a wicket as Brathwaite continued his excellent 2014 unbeaten on 65.
He has put on 92 for the third wicket with the more aggressive Samuels (60) after West Indies had been rocked by two wickets in as many balls just before the tea break.
They have moved the side closer to South Africa’s first innings score of 417 for eight declared and will be confident of getting the additional 71 runs needed to avoid the follow-on.
Right-hander Brathwaite, 22, has scored 660 Test runs this year at an average of 82.50 to showcase his rich potential.
Along with the more experienced Samuels, he displayed admirable application and patience, the only real scare for the pair a leg before wicket decision from Australian umpire Paul Reiffel that went against Samuels but was overturned on review for height.
After striking Smith a sickening blow on the helmet, Morkel claimed his wicket -- caught at first slip by Hashim Amla, while Johnson flashed at a ball that showed a hint of reverse-swing and was snapped up by Faf du Plessis at third slip for a golden duck.
But that was the last wicket for South Africa on the third day, which had started an hour late due to a wet outfield and was played for the most part in overcast conditions.
Morkel’s figures of two for 24 do not tell the story of the fierceness of his spells, or the immaculate line he bowled and movement he generated with the ball.
Earlier, Dale Steyn bludgeoned his second Test 50, and the fasTest ever in Port Elizabeth, off 26 balls as he led the Proteas quickly past 400.
The world’s best fast bowler was eventually dismissed two balls later for 58 in a sparkling innings that included five huge sixes.
South Africa won the first Test in Pretoria by an innings and 220 runs, with the third and final match to start in Cape Town on Friday.
Scorecard
South Africa, first innings (Overnight 289-3)
A Petersen c Johnson b Gabriel 17
D Elgar c Ramdin b Peters 121
F du Plessis c Ramdin b Taylor 103
H Amla lbw b Holder 33
A de Villiers b Taylor 10
T Bavuma c Ramdin b Gabriel 10
S van Zyl c Ramdin b Peters 29
V Philander not out 13
D Steyn c Holder b Benn 58
Extras (b4, lb5, nb8, w6) 23
Total (8 wkts dec, 122 overs) 417
Fall of wickets: 1-47, 2-226, 3-274, 4-300, 5-304, 6-325, 7-348, 8-417
Bowling: Taylor 30-7-114-2, Peters 20-7-69-2, Holder 22-7-43-1, Gabriel 21-0-80-2, Benn 28-4-102-1, Samuels 1-1-0-0.
West Indies, first innings
K Brathwaite batting 65
D Smith c Amla b Morkel 22
L Johnson c Du Plessis b Morkel 0
M Samuels batting 60
Total (2 wkts, 44 overs) 147
Fall of wickets: 1-55, 2-55
Bowling: Steyn 9-2-36-0, Philander 11-2-30-0, Morkel 8-1-24-2, Imran Tahir 15-1-52-0, Elgar 1-0-5-0.
Image: Marlon Samuels drives a delivery during day 3 of the second Test match between South Africa and West Indies at St. Georges Park
Photograph: Duif du Toit/Gallo Images/Getty Images
Dale Steyn rips through Windies, Proteas post huge win
Elgar battles to much-needed ton as Windies wilt
Jayawardene, Afridi will be most experienced players at World Cup
Run-machine Kohli emulates batting great Gavaskar!
Centurion Test: Amla, Zyl punish Windies before rain ends play