The South African began the day with a one-stroke lead on nine under, only to see it overtaken by morning starters Danny Willett, the defending champion, from Sheffield who shot 65, and Austrian Bernd Wiesberger.
After five successive pars a birdie took him to 10 under, but he immediately dropped back with a double-bogey six at the 441-yard next.
The 43-year-old, who will defend his Open title at Muirfield next month, regained that stroke at the ninth and added four more birdies coming home, with his four at the 568-yard last enough to take him ahead of the pack after a bogey at the 16th had appeared to impair his progress.
He finished the day 12 under and one ahead of England’s Matthew Baldwin and Frenchman Alexander Levy, who had rounds of 69 and 68 respectively. Willett’s 65 lifted him to 10 under and well placed to retain his crown while home favourite Martin Kaymer, struggling with illness, is a shot further back after a 71.
Yorkshireman Willett’s opening 69 had left him six strokes off the pace set by Els but he set out to change that as one of the morning starters.
Birdies at the 11th and 12th, having begun on the back nine, got the 25-year-old going but he had to wait until the first before he picked up another shot.
That was one of five birdies coming home which saw him leap 46 places to the top of the leaderboard.
“(Thursday) was a little bit hit and miss. I haven’t played a lot of tournaments in the last 14 weeks,” said Willett, who has been affected by a back problem.
“It was a bit rusty but I hit a lot of good shots. It is good to put yourself in a good position playing sensible golf.
“It is a birdie-fest out here. People make a lot of putts and the greens are obviously better in the mornings than the afternoons, but if you can keep hitting it inside 15-20 feet you have a chance.”
Harrogate’s John Parry is in a tie for 42nd having added a 72 to his opening 67. He had four bogeys on the front nine but came home in 33.
Hull’s Richard Finch and Simon Dyson both failed to make the cut.
Finch replicated his first-round 72 to miss the weekend’s play by one shot, a double bogey on the 16th proving painful and costly. Dyson improved on his 76 by seven shots to be a shot further back.