Morkel claimed two wickets in two balls in the morning and grabbed one more after the lunch break to help restrict India, who have already clinched the four-match series with a match to spare, to 116-4.
India skipper Virat Kohli was batting on 39 at the break with first innings centurion Ajinkya Rahane (22) at the other end after the hosts opted not to enforce the follow-on and decided to set a target to the visitors.
Morkel drew first blood in the morning with a short delivery to dismiss opener Murali Vijay caught behind. The batsman pointed to his arm-guard to suggest he did not nick it before leaving the field shaking his head.
Rohit Sharma was sent ahead of Cheteshwar Pujara, who was hit on the arm while fielding at short leg on Friday, but the batsman could not justify his promotion.
The right-hander, who scored one in the first innings, was out for a golden duck after a fuller Morkel delivery eluded his tentative prod and rearranged his stumps.
Leading the attack in absence of injured paceman Dale Steyn, Morkel spoiled Shikhar Dhawan's 30th birthday by castling the batsman with a searing, inswinging yorker to dismiss him for 21.
Imran Tahir dismissed Pujara (28) and India could have been in bigger trouble when Kohli was ruled caught behind only to be called back after TV replays showed the leg-spinner had oversteppped.
Kohli, hand on hip, was seen glaring at the umpire after being given out initially, suggesting he did not nick it. – ReutersIndia extended their overall lead to 329 runs at tea on the third day of the fourth and final Test at against South Africa.
Original source: India in control in New Dehli