Virat Kohli’s 53rd ODI ton and Ruturaj Gaikwad’s maiden century were eclipsed by a collective effort from South Africa.