The 35-year-old achieved the milestone when Jacques Kallis, batting at 34, was given leg before wicket by umpire Rod Tucker despite his edging the ball onto his pads at the New Wanderers Stadium.
The left armer joins the elite company of leg spinner Anil Kumble (619 wickets), all-rounder Kapil Dev (434) and offie Harbhajan Singh (413) in his 89th match.
He also becomes the most successful left arm fast bowler after Pakistani great Wasim Akram (414) and Sri Lanka's Chaminda Vaas (355).
Among the cricketing nations, Zaheer is placed 27th with Sri Lankan spin wizard Muttiah Muralitharan topping the chart with 800 scalps.
Zaheer had taken a four-wicket haul in the first innings and this was his first wicket in South Africa's second innings.
This is Zaheer's first international match in more than a year as he was dropped from the team because of fitness issues.