Decoding batters with most tons against South Africa in ODIs
What's the story
New Zealand defeated South Africa by 50 runs on March 5 in the 2025 Champions Trophy semi-final.
Kane Williamson and Rachin Ravindra powered NZ to 362/6 with brilliant centuries.
Williamson's ton saw him set multiple records, including his third consecutive century against SA and fourth overall, placing him among an elite group of batters.
We decode batters with the most ODI centuries against SA.
#1
5 - Sachin Tendulkar (India)
Sachin Tendulkar owns five tons against the Proteas, having played in 57 innings.
His first ton came during South Africa's 1996 tour of India where he smashed 114 off 126 runs.
As per ESPNcricinfo, Tendulkar smashed 2,001 runs against SA at 35.73, including eight half-centuries and a high score of 200*.
He finished his ODI career with 18,426 runs at 44.83 across 463 ODIs.
#2
5 - Virat Kohli (India)
Virat Kohli features on this list with five ODI centuries against South Africa.
His first came in the fourth ODI of SA's 2015 tour, where he smashed 138 off 140 balls.
Meanwhile, across 29 innings, he has amassed 1,504 runs at 65.39, with eight fifties and a high score of 160*.
Notably, Kohli recently surpassed 14,000 ODI runs and now owns 14,180 at 58.11.
#3
5 - David Warner (Australia)
David Warner joins this list with five ODI centuries against South Africa.
He is one of three batters to score five or more tons against a single team.
Meanwhile, his first came in the 2016 West Indies tri-series (109 off 120 balls), followed by back-to-back centuries (2016, 2019).
Warner amassed 1,255 against SA (30 innings). Overall, he retired with 6,932 runs at 45.30.
#4
4 - Kane Williamson (New Zealand)
As mentioned, Williamson just smashed his fourth ODI ton against South Africa in the CT semi-final.
Notably, it was his third consecutive century against SA, making him the first to achieve this feat.
His first came in 2013 (145* off 136 balls). He now has 905 runs (19 innings) against SA.
Overall, Williamson owns 7,224 runs at 49.47 across 164 ODI innings (15 tons).