Hambantota - AB de Villiers and Quinton de Kock struck sparkling centuries as South Africa racked up a mammoth 339 for five in the final one-day international against Sri Lanka on Saturday.

De Villiers won the toss and elected to bat on a dry pitch at the Mahinda Rajapaksa International Cricket Stadium, and his call was vindicated by De Kock and Hashim Amla (48), who added 118 for the first wicket.

While Jacques Kallis fell cheaply for the third time on this tour, De Kock went on to chalk up his fifth ODI century, off 108 balls, before eventually falling for 128 off 127 balls, clubbing 12 fours and three sixes.

De Villiers, meanwhile, sped to a blistering 17th century in this format, requiring only 66 balls, and spanking 11 fours and three sixes, as South Africa put themselves in a very strong position to seal their first ever series win in Sri Lanka.