Australia, set an impossible 612 to win, were 88 for three when bad light ended play.
The tall Morkel, playing in his final Test before retirement, dismissed both opening batsmen in an impressive eight-over spell.
South Africa delayed their second-innings declaration until tea, with a team spokesperson citing concerns about injuries to all three of their fast bowlers.
The main worry appeared to be the fitness of Morkel, who left the field and was unable to complete an over on Sunday with what was described as a side strain.
But a later diagnosis was that the problem was a less severe abdominal strain.
Morkel, with extensive strapping around his midriff, came on to bowl as second change and with his tenth ball trapped Matt Renshaw leg before wicket with a full-length delivery angled in to the left-hander.
Left-arm spinner Keshav Maharaj also won a leg before decision, when Usman Khawaja played no shot to a ball which spun sharply out of the rough, before Morkel struck again when Joe Burns played across a ball of almost yorker length.
Burns, one of three replacements for the Australian trio banned for their role in a ball-tampering scandal, made 42 off 84 balls with five fours and a six.
South Africa's other fast bowlers, Kagiso Rabada and Vernon Philander, were struggling with a stiff lower back and a groin strain respectively. They both bowled short spells with the new ball.
Captain Faf du Plessis hit 120 and Dean Elgar made 81 before South Africa declared at 344 for six. They shared a fourth-wicket partnership of 170, the best for any wicket by either side during the series.
With South Africa leading the series 2-1, their batting effort made sure they would secure their first home series win against Australia since 1969/70, whether or not their bowling options were limited.
Du Plessis made his first major contribution of the series after scoring only 55 runs in his first seven innings.
When he was on 43, he needed lengthy treatment after a ball from Pat Cummins split open the right index finger he broke earlier in the season.
But he went on to make his eighth Test century and his third against Australia. He faced 178 balls in his innings, which included 18 fours and two sixes.
Cummins was again Australia's best bowler, taking four for 58. His match figures of nine for 141 were the best of his career.
First Published: April 2, 2018, 9:31 PM IST