Aiden Markram and Temba Bavuma flying through South Africa’s top 20 Test run-scorers – but how soon before they enter top 10?

South Africa has produced some of the greatest batters in Test cricket history.
From legendary all-rounders to stylish stroke-makers, these players have carried the Proteas’ batting lineup through different eras.
In this listicle, we profile South Africa’s top 20 run-scorers in Test cricket, highlighting their careers, achievements, and contributions to the game.
1. Jacques Kallis – 13,206 Test runs for South Africa
Matches: 166 | Average: 55.37 | 100s: 45 | 50s: 58
Widely acknowledged as the greatest all-rounder in Test history, Jacques Kallis dominated with both bat and ball. His 13,206 runs make him South Africa’s highest run-scorer and the third-highest overall in Tests.
With 45 centuries, he was a rock in the middle order, combining technical perfection with immense patience.
Kallis was unflappable, going about his run scoring no matter the circumstances – home or away, against spin or pace, in the face of sledging or absolute silence, Kallis handled whatever came his way with his insatiable thirst for runs.
2. Hashim Amla – 9,282 Test runs for South Africa
Matches: 124 | Average: 46.64 | 100s: 28 | 50s: 41
A graceful right-hander, Hashim Amla was the backbone of South Africa’s batting in the 2010s.
His 311* against England in 2012 remains the highest individual score by a South African in Tests. Known for his calm demeanour and wristy stroke play, Amla was a key figure in South Africa’s rise to number one in the Test rankings.
3. Graeme Smith – 9,253 Test runs for South Africa
Matches: 117 | Average: 48.25 | 100s: 27 | 50s: 38
One of South Africa’s, and indeed Test cricket’s, greatest captains, Graeme Smith was a fearless opener who led from the front.
His aggressive style and ability to play long innings (including four double centuries) made him a nightmare for bowlers. Smith’s leadership also guided South Africa to historic series wins in England and Australia.
4. AB de Villiers – 8,765 Test runs for South Africa
Matches: 114 | Average: 50.66 | 100s: 22 | 50s: 46
AB de Villiers was one of the most innovative and destructive batters of his generation. Capable of playing both defensively and explosively, he held the record for the fastest Test century (off 31 balls) before it was broken.
His versatility across formats and positions in the batting order made him indispensable.
5. Gary Kirsten – 7,289 Test runs for South Africa
Matches: 101 | Average: 45.27 | 100s: 21 | 50s: 34
A gritty left-handed opener, Gary Kirsten was known for his resilience and ability to bat for long periods. His marathon 275 against England in 1999 was a testament to his endurance.
Post-retirement, Kirsten became a successful coach, guiding India to a World Cup win in 2011. Unlike his older brother Peter who was a classy shot-maker in the Mark Waugh mould, Gary Kirsten was more about the mental game.
He knew his strengths and his scoring areas, and he worked them hard.
6. Herschelle Gibbs – 6,167 Test runs for South Africa
Matches: 90 | Average: 41.95 | 100s: 14 | 50s: 26
A flamboyant stroke-maker, Herschelle Gibbs brought excitement to South Africa’s batting.
His 175 in the famous 438-run chase against Australia in ODIs overshadowed his Test achievements, but he was equally destructive in the longest format, with a high score of 228.
7. Mark Boucher – 5,498 Test runs for South Africa
Matches: 147 | Average: 30.30 | 100s: 5 | 50s: 35
Primarily known as a wicketkeeper, Mark Boucher was a gritty lower-order batsman who often rescued South Africa from tough situations.
His 999 dismissals in international cricket remain a world record, but his batting contributions (including a match-winning 50* to secure a series win in Australia) were equally vital.
8. Dean Elgar – 5,347 Test runs for South Africa
Matches: 86 | Average: 37.92 | 100s: 14 | 50s: 23
A tough, no-nonsense opener, Dean Elgar was South Africa’s modern-day warrior in Test cricket.
Built very much in the Gary Kirsten mould, Elgar led the side during a transitional phase, he scored crucial runs in difficult conditions, including a memorable 199* against Bangladesh.
9. Daryll Cullinan – 4,554 Test runs for South Africa
Matches: 70 | Average: 44.21 | 100s: 14 | 50s: 20
A stylish middle-order batsman, Daryll Cullinan was one of South Africa’s best players of spin.
Despite his struggles against Shane Warne, he was a key batter in the 1990s, with a highest score of 275*. Sometimes controversial, Cullinan in full flow was a wonderful batsman to watch.
10. Faf du Plessis – 4,163 Test runs for South Africa
Matches: 69 | Average: 40.02 | 100s: 10 | 50s: 21
A technically sound batsman and former captain, Faf du Plessis was known for his ability to grind out tough runs. His debut century (110*) in Adelaide saved a Test match, setting the tone for a career built on resilience.
An excellent fielder and leader Du Plessis was able to adapt to conditions and the needs of his team in almost seamless fashion. Still playing franchise cricket well into his 40’s, Du Plessis was one of the finest players ever produced by South Africa.
11. Shaun Pollock – 3,781 Test runs for South Africa
Matches: 108 | Average: 32.31 | 100s: 2 | 50s: 16
One of South Africa’s greatest all-rounders, Shaun Pollock contributed with both bat and ball. While his bowling was his primary strength, his handy lower order runs often proved crucial.
While it is his bowling for which most people will remember him, his average is remarkably high and coupled with the sheer volume of games played ensure he features high on this list.
12. Hansie Cronje – 3,714 Test runs for South Africa
Matches: 68 | Average: 36.41 | 100s: 6 | 50s: 22
A controversial figure due to his involvement in match-fixing, Hansie Cronje was once a respected leader and a gritty middle-order batsman. His tactical acumen and fighting spirit were key to South Africa’s success in the 1990s.
If his head had not been turned by bookmakers, Cronje would undoubtedly have gone down in history as one of the great skippers of all time.
13. Ashwell Prince – 3,665 Test runs for South Africa
Matches: 66 | Average: 41.64 | 100s: 11 | 50s: 11
Currently part of the Proteas set-up as the batting coach, Prince was a determined left-hander and a reliable middle-order stalwart during the 2000s.
His 119* against Australia in Sydney was one of his finest knocks. prince had an excellent record converting fifties in hundreds with 11 of each to his credit.
14. Temba Bavuma – 3,606 Test runs for South Africa
Matches: 59 | Average: 36.06 | 100s: 2 | 50s: 20
The first player on the list that is still playing Test cricket, Bavuma was South Africa’s first black Test captain, and the man who led the Proteas to the final of the World Test Championships.
Diminutive in stature Temba Bavuma has been a symbol of resilience. While his century conversion rate has been criticized, his fighting fifties in tough conditions have been invaluable.
It took Bavuma a while to hit his straps, but as his career progressed his contributions have become increasingly weighty.
15. Bruce Mitchell – 3,471 Test runs for South Africa
Matches: 42 | Average: 48.88 | 100s: 8 | 50s: 21
A pre-war great, Bruce Mitchell was one of South Africa’s finest batsmen in the 1930s and 1940s.
His elegant stroke play and consistency made him a standout performer. Indeed, such was his quality that he played in each of South Africa’s 42 Tests between 1929 to 1949.
16. Quinton de Kock – 3,300 Test runs for South Africa
Matches: 54 | Average: 38.82 | 100s: 6 | 50s: 22
A dynamic wicketkeeper-batsman, Quinton de Kock brought aggression to South Africa’s Test side. His counter-attacking style often changed the momentum of games.
De Kock brought a seemingly carefree attitude to his game which meant he both exciting and nerve-wracking to watch. Although the weight of his Test runs is significant, it will always be as a white-ball opener that QdK is most fondly remembered.
17. Neil McKenzie – 3,253 Test runs for South Africa
Matches: 58 | Average: 37.39 | 100s: 5 | 50s: 16
An underrated opener, Neil McKenzie was part of South Africa’s strong batting unit in the 2000s.
His 226 against Bangladesh was a career highlight.
An awkward batsman to watch with his curious collection of ticks and superstitions, McKenzie was descended from cricketing royalty with his father having batted at five for the famous Transvaal Mean Machine of the 1980s – a side that included the likes of Clive Rice, Sylvester Clarke, Jimmy Cook and Graeme Pollock.
18. Dudley Nourse – 2,960 Test runs for South Africa
Matches: 34 | Average: 53.81 | 100s: 9 | 50s: 14
Another of South Africa’s early legends who played when the team were still known as the Springboks, Dudley Nourse had a phenomenal average of 53.81.
His 231 against Australia in 1935 remains one of the great innings by a South African.
19. Herbie Taylor – 2,936 Test runs for South Africa
Matches: 42 | Average: 40.77 | 100s: 7 | 50s: 17
A batting star of the 1910s and 1920s, Herbie Taylor was known for his technique and ability to handle tough bowling attacks.
Taylor played so long ago that the majority of the games he starred in were on matting pitches.
20. Aiden Markram – 2,857 Test runs for South Africa
Matches: 41 | Average: 40.81 | 100s: 7 | 50s: 14
A modern-day opener, and the second player on this list still actively playing Test cricket, Aiden Markram has shown flashes of brilliance, including a stunning 152 against Australia in 2018.
His aggressive style and composed leadership make him a key player for South Africa. The skipper of the white ball team, Markram’s average of 35.71 should probably be higher, but at just 30-years-old he has plenty of time ahead to add to his already impressive list of contributions.