The Springboks showed no signs of ring rustiness and tore into the Lions from the outset. Captain John Smit barged his way over in the fourth minute for the first try of the match and with Ruan Pienaar banging over three penalties and full back Frans Steyn adding another, the Boks were firmly in control at the break.
Leicester flanker Tom Croft gave the Lions some hope when he was on the shoulder of Brian O'Driscoll to collect the Irish centre's pass to dive over in Steyn's tackler but other than that, the tourists struggled to get in to the game as their scrum and lineout failed to function.
When flanker Heinrich Brussow powered over early on in the scone half it looked like it was going to be one way traffic but a second try from Croft with 13 minutes remaining suddenly turned the tide.
Scrum-half Mike Phillips dived over with five minutes remaining, Stephen Jones converting both to set up a grandstand finish.
The Boks were out on their feet as the Lions ripped into them but somehow the home side kept the rampant Lions at bay.
Even in defeat, there were several positives to come out of the match for Ian McGeechan and his fellow selectors. Welsh centre Jamie Roberts was once again outstanding and his partnership with O'Driscoll has become a crucial cutting edge for the Lions.
Hooker Matthew Rees and fellow countryman Adam Jones both impressed when coming on as replacements for Lee Mears and Phil Vickery respectively. The scrum improved in the second spell so the Lions selectors have plenty to ponder before the second Test next Saturday.
South Africa (19) 26
Tries: Smit, Brussow Cons: Pienaar 2 Pens: Pienaar 3, Steyn
Lions (7) 21
Tries: Croft 2, Phillips Cons: Jones 3
South Africa: Frans Steyn, JP Pietersen, Adi Jacobs, Jean de Villiers, Bryan Habana; Ruan Pienaar, Fourie du Preez; Tendai Mtawarira, Bismarck du Plessis, John Smith (capt) Bakkies Botha, Victor Matfield, Heinrich Brussow, Juan Smith, Pierre Spies.
Replacements: Deon Carstens (for Smit, 65, Smit for ), Gurthro Steenkamp (for Mtawarira, 65) , Andries Bekker (for Botha, 57), Danie Rossouw (for Brussow, 52), Ricky Januarie (for Du Preez, 68), Morne Steyn (for Pienaar, blood 65, Pienaar for Jacobs, 74), Jaque Fourie (for De Villiers, 57)
Lions: Lee Byrne, Tommy Bowe, Brian O'Driscoll, Jamie Roberts, Ugo Monye, Stephen Jones, Mike Phillips; Gethin Jenkins, Lee Mears, Phil Vickery, Alun-Wyn Jones, Paul O'Connell, Tom Croft, David Wallace, Jamie Heaslip.
Replacements: Matthew Rees (for Mears, 50), Adam Jones (for Vickery, 45), Donncha O'Callaghan (for Wyn Jones, 68, Martyn Williams (for Wallace, 66), Harry Ellis, Ronan O'Gara, Rob Kearney (for Byrne, 38).