Scoring runs consistently across all three formats of international cricket is one of the biggest challenges for any batter. Test cricket demands patience and technique, ODIs require a balance between attack and defence, while T20Is test a player’s ability to score quickly.
Only a few batters have managed to dominate all three formats over a long period. Sachin Tendulkar leads the list of players with the most runs in international cricket, while Virat Kohli is currently in second place and remains active in the game.
Here is a look at the top 10 batters with the most runs in international cricket across Tests, ODIs and T20Is.
Most Runs in International Cricket
1. Sachin Tendulkar – 34,357 Runs
Sachin Tendulkar holds the record for scoring the most runs in international cricket. The former India batter finished his career with 34,357 runs across 664 international matches between 1989 and 2013.
Tendulkar scored 15,921 runs in Test cricket, 18,426 in ODIs and 10 in T20Is. He finished with an average of 48.52, including 100 centuries and 164 half-centuries.
His record of 100 international centuries remains one of the biggest achievements in cricket history.
Career Statistics:
- Matches: 664
- Innings: 782
- Runs: 34,357
- Highest Score: 248*
- Average: 48.52
- Centuries: 100
- Half-Centuries: 164
2. Virat Kohli – 28,601 Runs*
Virat Kohli is second on the list with 28,601 runs in international cricket. He has scored these runs in 566 matches since making his international debut in 2008.
Kohli has an impressive average of 52.86, the highest among the top 10 batters on this list. He has also scored 86 centuries and 149 half-centuries across the three formats.
With his international career still active, Kohli has an opportunity to move closer to Tendulkar’s all-time record.
Career Statistics:
- Matches: 566
- Innings: 633
- Runs: 28,601
- Highest Score: 254*
- Average: 52.86
- Centuries: 86
- Half-Centuries: 149
3. Kumar Sangakkara – 28,016 Runs
Former Sri Lanka captain Kumar Sangakkara occupies third place with 28,016 international runs. He played 594 matches between 2000 and 2015 and was one of the most consistent batters of his generation.
Sangakkara finished his career with an average of 46.77. He scored 63 centuries and 153 half-centuries, with his highest international score being 319.
His ability to perform in all three formats made him one of Sri Lanka’s greatest batters.
Career Statistics:
- Matches: 594
- Innings: 666
- Runs: 28,016
- Highest Score: 319
- Average: 46.77
- Centuries: 63
- Half-Centuries: 153
4. Ricky Ponting – 27,483 Runs
Ricky Ponting is fourth among the highest run-scorers in international cricket. Former Australia captain scored 27,483 runs in 560 matches between 1995 and 2012.
Ponting recorded an average of 45.95, scoring 71 centuries and 146 half-centuries. His highest international score was 257.
He was a key part of Australia’s dominance in international cricket and played an important role in three consecutive World Cup-winning campaigns.
Career Statistics:
- Matches: 560
- Innings: 668
- Runs: 27,483
- Highest Score: 257
- Average: 45.95
- Centuries: 71
- Half-Centuries: 146
5. Mahela Jayawardene – 25,957 Runs
Mahela Jayawardene ranks fifth with 25,957 runs in international cricket. He represented Sri Lanka between 1997 and 2015, playing 652 matches across the three formats.
Jayawardene scored 54 centuries and 136 half-centuries during his career. His highest international score was 374, which came in Test cricket against South Africa in 2006.
He was also one of Sri Lanka’s most successful captains and played a major role in the team’s success across formats.
Career Statistics:
- Matches: 652
- Innings: 725
- Runs: 25,957
- Highest Score: 374
- Average: 39.15
- Centuries: 54
- Half-Centuries: 136
6. Jacques Kallis – 25,534 Runs
South African all-rounder Jacques Kallis is sixth on the list with 25,534 international runs. He played 519 matches between 1995 and 2014 and was equally valuable with the bat and ball.
Kallis finished his international career with an average of 49.10. He scored 62 centuries and 149 half-centuries, with a highest score of 224.
His contribution across all three formats made him one of the greatest all-rounders in cricket history.
Career Statistics:
- Matches: 519
- Innings: 617
- Runs: 25,534
- Highest Score: 224
- Average: 49.10
- Centuries: 62
- Half-Centuries: 149
7. Rahul Dravid – 24,208 Runs
Former India batter Rahul Dravid occupies seventh place with 24,208 international runs. Known for his technique and patience, Dravid played 509 matches between 1996 and 2012.
He finished with an average of 45.41, scoring 48 centuries and 146 half-centuries. His highest international score was 270, which came in Test cricket.
Dravid earned the nickname ‘The Wall’ for his ability to bat for long periods and handle difficult situations.
Career Statistics:
- Matches: 509
- Innings: 605
- Runs: 24,208
- Highest Score: 270
- Average: 45.41
- Centuries: 48
- Half-Centuries: 146
8. Joe Root – 23,181 Runs*
England’s Joe Root is eighth on the list with 23,181 international runs. He has played 400 matches since making his international debut in 2012.
Root has scored 61 centuries and 123 half-centuries at an average of 49.63. His highest international score is 262.
With his international career still active, Root has the opportunity to climb further up the list in the coming years.
Career Statistics:
- Matches: 400
- Innings: 526
- Runs: 23,181
- Highest Score: 262
- Average: 49.63
- Centuries: 61
- Half-Centuries: 123
9. Brian Lara – 22,358 Runs
West Indies legend Brian Lara is ninth with 22,358 international runs. He represented his country between 1990 and 2007, playing 430 matches.
Lara scored 53 centuries and 111 half-centuries at an average of 46.28. His highest international score was an unbeaten 400 in Test cricket against England in 2004, which remains the highest individual score in men’s Test cricket.
He was known for his elegant batting style and ability to produce remarkable innings against some of the strongest bowling attacks.
Career Statistics:
- Matches: 430
- Innings: 521
- Runs: 22,358
- Highest Score: 400*
- Average: 46.28
- Centuries: 53
- Half-Centuries: 111
10. Sanath Jayasuriya – 21,032 Runs
Sanath Jayasuriya completes the top 10 with 21,032 international runs. The former Sri Lanka all-rounder played 586 matches between 1989 and 2011.
He scored 42 centuries and 103 half-centuries at an average of 34.14. His highest international score was 340 in Test cricket.
Jayasuriya changed the way opening batters approached ODI cricket with his aggressive batting during the early overs. His performances played a major role in Sri Lanka’s 1996 World Cup-winning campaign.
Career Statistics:
- Matches: 586
- Innings: 651
- Runs: 21,032
- Highest Score: 340
- Average: 34.14
- Centuries: 42
- Half-Centuries: 103
Overall, Sachin Tendulkar remains at the top of the list with 34,357 international runs, while Virat Kohli is the closest active batter with 28,601 runs. Kumar Sangakkara, Ricky Ponting and Mahela Jayawardene complete the top five.
Among active players, Joe Root is also making steady progress with 23,181 runs. With Kohli and Root still adding to their international records, the rankings could see further changes in the coming years.

