Golden Lions went three points clear at the Currie Cup summit after a late Jaco Kriel try saw them defeat The Sharks 28-22 at Coca-Cola Park.
The early stages saw little dominance for either outfit, with fly-half Elton Jantjies and centre Meyer Bosman trading penalty kicks before the visitors broke the deadlock shortly after the half-hour.
Odwa Ndungane crossed for the game's first try on 33 minutes after a break from Lwazi Mvovo and a charge down the centre of the field by captain Keegan Daniel. Bosman's conversion attempt, which deflected off both posts, was unsuccessful but the Sharks had an 11-6 lead in their pocket.
John Plumtree's charges moved further clear after the first-half hooter had sounded when scrum-half Cobus Reinach snatched the ball from the back of a 20-metre scrum and went over. Bosman again missed from the tee as the Sharks jogged to the sheds 16-6 up.
Jantjies, who scored all the Lions' points in the first hour, kept the hosts in the game with three more penalties as they narrowed the gap to just one point with 30 minutes left.
Bosman added six more points off the tee for the Sharks as they kept their noses in front, and Jantjies sent over one more as the Lions managed to stay in touch in Johannesburg.
The hosts eventually snatched the lead with eleven minutes left when Andries Coetzee broke after a fine chip kick and offloaded to Ruan Combrinck who dived over on the left.
Sharks captain Daniel had argued that replacement flanker Kriel had knocked the ball on before the try was scored, but the match officials awarded the Lions five critical points.
Three minutes later Kriel scored a breathtaking second Lions try as he raced away from close to the halfway line for a six-point advantage, which they held until full-time.
For Golden Lions:
Tries: Combrink, Kriel
Con: Jantjies 2
Pen: Jantjies 6
For The Sharks:
Tries: Ndungane, Reinach
Pen: Bosman 4
Lions: 15 Andries Coetzee, 14 Deon Helberg, 13 Lionel Mapoe, 12 Alwyn Hollenbach/Jaco Taute, 11 Ruan Combrinck, 10 Elton Jantjies, 9 Michael Bondesio, 8 Warren Whiteley, 7 Willie Britz, 6 Cobus Grobbelaar, 5 Franco Van der Merwe, 4 Michael Rhodes, 3 Jacobie Adriaanse, 2 Callie Visagie, 1 JC Janse van Rensburg (c).
Replacements: 16 Bandise Maku, 17 Ruan Dreyer, 18 Etienne Oosthuizen, 19 Jaco Kriel, 20 Ross Cronje, 21 Butch James, 22 Jaco Taute.
Sharks: 15 Louis Ludik, 14 Odwa Ndungane, 13 Tim Whitehead, 12 Meyer Bosman, 11 Lwazi Mvovo, 10 Riaan Viljoen, 9 Cobus Reinach, 8 Keegan Daniel (capt), 7 Jean Deysel, 6 Jacques Botes, 5 Anton Bresler, 4 Steven Sykes, 3 Wiehahn Herbst, 2 Craig Burden, 1 Dale Chadwick.
Replacements: 16 Monde Hadebe, 17 Julian Redelinghuys, 18 Jandre Marais, 19 Brynard Stander, 20 Charl McLeod, 21 Paul Jordaan, 22 Sbura Sithole.
Referee: Jason Jaftha