Martin Bicknell, shaping the ball from right to left, trapped Jacques Rudolph lbw for a duck as the left-hander played across the line to a ball which straightened.
Bicknell also claimed Mark Boucher's wicket, having the South African wicket-keeper caught behind for eight. He picked up two wickets for six runs in 23 deliveries to put South Africa on the backfoot at 385 for 6.
The 34-year-old seamer received a surprise recall to the England team for the fourth Test against South Africa, ten years after playing two Tests against Australia in 1993.