Shane Lowry surged into contention for the Nedbank Golf Challenge as Rory McIlroy endured another rollercoaster round in Sun City.
The world No 70 closed with a birdie to add a three-under 69 to his opening 71 and move up to tied fourth, just five strokes behind Sergio Garcia on four-under par and remain on course to continue his rise in the Race to Dubai and the world rankings.
But it was another frustrating day for McIlroy at Gary Player Country Club and a microcosm of his year as he posted an erratic, one-under 71 that left him where he started the day, eight strokes behind Garcia.
The Co Down man knows he can afford to finish no worse than second if he's to have any chance of overtaking Francesco Molinari with a win in next week's season-ending DP World Tour Championship and claim his fourth Race to Dubai title.
But after starting promisingly with birdies at the second and third, he missed too many fairways and mixed three bogeys with two birdies in an exasperating spell mid-round, even missing a two-foot tiddler for par at the eighth.
"It's been a frustrating couple of days," confessed McIlroy, who is tied for 19th on one-under par.
"My game is not really where I want it to be, but I've got two more opportunities this week to try and put a couple of good rounds together and then go to Dubai and try to finish the season on a high.
"I need to tidy up my game off the tee, and then if I do that, you can give yourself a lot of chances around here, but you need to get the ball in the fairway first."
Lowry, who is 41st in the Race to Dubai but targeting at least a top-30 spot that would earn him an exemption next year's Open Championship at Royal Portrush, birdied the second and fifth to move up the leaderboard.
He then finished well after a bogey at the eighth by following a birdie four at the 14th with a par save from 15 feet at the 16th and an impressive closing birdie from just eight feet.
In-form Garcia extended his four-shot overnight lead to five as he turned in 33.
But the Spaniard bogeyed two of his last three holes, three-putting the 18th to finish the day just a shot ahead of local favourite Louis Oosthuizen (67) on nine-under after a 71.
Finn Mikko Korhonen is just three behind in solo third after a 70 with Lowry lurking ominously, tied for fourth with South Africa's Dylan Frittelli and English pair Aaron Rai and Lee Westwood on four-under.
Pádraig Harrington, who will likely needs a top-seven finish to make the top 60 in the Race to Dubai standings who qualify for next week's season-ending event, shot another 73 to slip to 37th on two-over.
But it was a better day for Greystones' Paul Dunne, who chiselled out a 71 on a course that doesn't suit his game to move up to 57th in the 72-man field on five-over.
On the PGA Tour, Graeme McDowell and Seamus Power missed the cut in the Mayakoba Golf Classic at El Camaleon Golf Club in Mexico.
McDowell (39) shot a second successive 70 to finish two strokes outside the mark on two-under-par alongside Jordan Spieth, who shot a 69.
As for Power (31), he missed his third cut from four starts in the 2018-19 campaign by eight strokes when he added a three-over 74 to his opening 72 to finish on four-over with much of the damage done at the 18th, his ninth, where he racked up a quadruple bogey eight.
At the top of the leaderboard, overnight leader Matt Kuchar (40) shot a second successive, seven-under-par 64 to lead by two strokes on 14-under par from recent Sanderson Farms Championship winner Cameron Champ (23), who carded a nine-under-par 62.