The Kenyans, coached by former Blitzbokke coach Paul Treu, went ahead early and led 12-10 later in the game before the South African bench provided the spark for two late tries to take the victory.
It was a much better Kenyan performance than before, with Treu’s side more disciplined and a lot better at keeping possession, while the Blitzbokke gave away far too many penalties early in the game.
The match opened with captain Kyle Brown being sin-binned for playing a ball in a ruck, a repeated infringement that drew the ire of the referee, and Kenya were quick to exploit the extra man advantage, with Billy Odihambo going over in the corner.
It wasn’t long before Brown returned and gave the telling pass for Justin Geduld to beat a stretched defence for the first of his two tries.
But Kenya scored again early in the second half through Andrew Amonde, forcing Blitzbokke coach Neil Powell to go to his bench where the arrival of Werner Kok sparked the revival in the side, first as Seabelo Senatla underlined his speed on the outside to draw the South Africans level.
Then, with the clock ticking down, Kok grabbed a try and in the final seconds Geduld made the game safe by scoring his second.
Springboks remaining fixtures on Day 1:08:52 v Argentina
13:04 v Japan