Skip to content
CricketTaken

India ODI most runs: All-Time Records

By CricketTaken EditorialPublished Cricket in India10 min read

How this is written and checkedReport an error

Sachin Tendulkar scored 18,426 runs in 452 One-Day International innings for India between 1989 and 2012. No other Indian has reached 15,000, and only five have passed 10,000. The aggregate has stood since his last ODI in 2012 and remains the highest by any batter for any country.

Virat Kohli is second on 14,941 from 302 innings, at an average of 58.59 — nearly fourteen runs an innings clear of Tendulkar's 44.83, off less than two-thirds of the innings. He needs 3,486 more to pass the mark. Rohit Sharma is third on 11,895, then Sourav Ganguly on 11,221, Rahul Dravid on 10,768 and MS Dhoni on 10,599.

The table below ranks by career runs, which is the only honest way to compile an aggregate list, and carries innings, average and strike rate beside it because the three explain almost everything about how a given total was assembled. Dravid and Kohli are separated by 4,173 runs and by 19.44 in average; both facts are about the same two careers.

The 25 highest ODI run aggregates for India

# Player Span Inns Runs Ave SR 100s 50s
1 Sachin Tendulkar 1989-2012 452 18,426 44.83 86.23 49 96
2 Virat Kohli 2008-2026 302 14,941 58.59 93.95 54 79
3 Rohit Sharma 2007-2026 280 11,895 48.95 93.04 34 62
4 Sourav Ganguly 1992-2007 297 11,221 40.95 73.65 22 71
5 Rahul Dravid 1996-2011 314 10,768 39.15 71.18 12 82
6 MS Dhoni 2004-2019 294 10,599 50.23 87.13 9 73
7 Mohammad Azharuddin 1985-2000 308 9,378 36.92 74.02 7 58
8 Yuvraj Singh 2000-2017 275 8,609 36.47 87.43 14 52
9 Virender Sehwag 1999-2013 235 7,995 35.37 104.44 15 37
10 Shikhar Dhawan 2010-2022 164 6,793 44.11 91.35 17 39
11 Suresh Raina 2005-2018 194 5,615 35.31 93.50 5 36
12 Ajay Jadeja 1992-2000 179 5,359 37.47 69.79 6 30
13 Gautam Gambhir 2003-2013 143 5,238 39.68 85.25 11 34
14 Navjot Singh Sidhu 1987-1998 127 4,413 37.08 69.72 6 33
15 Kris Srikkanth 1981-1992 145 4,091 29.01 71.74 4 27
16 Kapil Dev 1978-1994 198 3,783 23.79 95.07 1 14
17 Dilip Vengsarkar 1976-1991 120 3,508 34.73 67.73 1 23
18 KL Rahul 2016-2026 90 3,412 49.44 91.08 8 20
19 Shubman Gill 2019-2026 66 3,379 60.33 100.95 9 20
20 Shreyas Iyer 2017-2026 76 3,136 45.44 97.84 5 24
21 Ravi Shastri 1981-1992 128 3,108 29.04 61.07 4 18
22 Sunil Gavaskar 1974-1987 102 3,092 35.13 62.26 1 27
23 Ajinkya Rahane 2011-2018 87 2,962 35.26 78.63 3 24
24 Ravindra Jadeja 2009-2026 142 2,905 32.27 85.54 0 13
25 Mohammad Kaif 2002-2006 110 2,753 32.01 72.03 2 17

The gap at the top, and whether it closes

The distance between first and second is 3,485 runs. Virat Kohli has averaged 49.47 runs per innings across his ODI career, so on his own long-run rate the gap is about seventy innings of batting. India played 314 ODIs across his first eighteen years in the side, an average of roughly seventeen a year, and he has not appeared in every one.

That arithmetic is not a prediction. It does establish that the record is reachable in a way it was not for anyone else: Ganguly finished 7,205 short, Dravid 7,658 short, and both retired with more innings played than Kohli has now. Sachin Tendulkar needed 452 innings and 21,368 balls to build the total, which is more balls than any Indian since has faced by a margin of over 5,000.

Six Indians past 10,000

Player Innings to 10,000 mark reached in career Final aggregate Runs per innings
Sachin Tendulkar 452 innings total 18,426 40.77
Virat Kohli 302 innings so far 14,941 49.47
Rohit Sharma 280 innings so far 11,895 42.48
Sourav Ganguly 297 innings total 11,221 37.78
Rahul Dravid 314 innings total 10,768 34.29
MS Dhoni 294 innings total 10,599 36.05

Runs per innings is not the same statistic as average, and the difference is the point of the column. MS Dhoni was not out 83 times in 294 innings — 28% of the time — which lifts his average to 50.23 while his runs per innings, 36.05, is the second lowest of the six. Rahul Dravid has the lowest runs per innings of the group and the second most innings, a combination that describes a career spent batting through the middle overs at 71.18 rather than accelerating out of them.

Kohli's 49.47 runs per innings is the highest figure any Indian has sustained past 5,000 ODI runs.

Home runs and away runs

Player Home inns Home runs Home ave Away/neutral inns Away/neutral runs Away/neutral ave
Sachin Tendulkar 160 6,976 48.11 292 11,450 43.05
Virat Kohli 127 6,867 62.42 175 8,074 55.68
Rohit Sharma 102 5,217 55.50 178 6,678 44.81
Sourav Ganguly 75 3,110 44.42 222 8,111 39.76
Rahul Dravid 91 3,406 43.11 223 7,362 37.56
MS Dhoni 113 4,351 53.71 181 6,248 48.06
Shikhar Dhawan 48 1,890 41.08 116 4,903 45.40
Shubman Gill 31 1,868 66.71 35 1,511 53.96

Every batter in this group except Shikhar Dhawan scored at a better average in India than outside it, which is the expected shape and is why the exception is worth naming. Dhawan's away and neutral record — 4,903 runs at 45.40 — includes his Champions Trophy campaigns in England, where he twice finished as the tournament's leading run-scorer.

The volume column tells a different story from the average column. Ganguly and Dravid played three-quarters of their ODI innings away from home; Kohli and Rohit Sharma have played closer to 60%. The Indian home season expanded through the 2010s, so the modern aggregate is built on a larger share of familiar conditions than Ganguly's was.

Against Australia, the most frequent opponent

Player Inns v Australia Runs Ave SR 100s
Sachin Tendulkar 70 3,077 44.59 84.71 9
Rohit Sharma 49 2,609 59.29 95.11 9
Virat Kohli 51 2,525 53.72 93.20 8
MS Dhoni 48 1,660 44.86 80.89 2
Shikhar Dhawan 29 1,265 45.17 97.68 4
Mohammad Azharuddin 41 990 28.28 70.71 0
Yuvraj Singh 37 981 27.25 85.15 2
Rahul Dravid 36 928 25.77 67.78 0

Three Indians have scored more than 2,500 ODI runs against Australia and all three are in the top three of the all-time list. Rohit's average of 59.29 against them is more than ten runs above his career figure, and nine of his 34 ODI hundreds have come in these fixtures — a quarter of his output against one opponent. The longer record of the fixture is set out in the India-Australia ODI head-to-head.

Dravid and Azharuddin scored 1,918 runs between them against Australia without a hundred. Both played the bulk of those matches in the years when Australia's ODI side was the strongest in the game.

Strike rates by era

The aggregate list mixes batters whose careers were separated by thirty years, and strike rate is where that shows. Of the eleven players on the list who finished before 2010, only Kapil Dev (95.07) struck above 87; of the seven still active or retired since 2020, only Ravindra Jadeja is below 90.

Shubman Gill has 3,379 runs at 100.95 from 66 innings, and Shreyas Iyer 3,136 at 97.84 from 76. Neither is close to the aggregate leaders yet, and both are scoring at a rate no Indian sustained over a comparable number of innings before 2015. Dravid's 71.18 and Ganguly's 73.65 were unremarkable for their era; Sidhu's 69.72 and Vengsarkar's 67.73 were normal a decade earlier. The change in what the format asks of an opener is covered in the guide to India's ODI cricket history.

Five things the table does not say

Kohli has more ODI hundreds (54) than Tendulkar (49) with 150 fewer innings, but 17 fewer fifties. The two lists are ranked in opposite orders, which is the case for most centuries in ODIs for India against this page.

Ravindra Jadeja is 24th on 2,905 runs without a single hundred, and 13 fifties from 142 innings. He is also the only bowler in the top 25 by aggregate, having batted at seven or lower for most of a seventeen-year career.

Kapil Dev's strike rate of 95.07 is the outlier of the pre-2000 group by more than 20 points. His 3,783 runs came off 3,979 balls — nearly a run a ball in an era when the top order was scoring at 65 per hundred.

Four of the top ten retired without playing an ODI after 2013, and four of the bottom eight are still selected. The list has a hole in the middle: no Indian who debuted between 2014 and 2018 has yet reached 4,000 ODI runs.

Gill's average of 60.33 is the highest of any Indian with 50 or more ODI innings, ahead of Kohli's 58.59, and it is built almost entirely on batting first — the split is set out on the page for India's best ODI batting averages. Every full career profile is listed in the player directory, and the wider story of the format in the country sits in the cricket in India hub.

Sources and method

Career runs, innings, not-outs, averages, strike rates, hundreds and fifties are taken from ESPNcricinfo's Statsguru career query for men's One-Day Internationals with the team filter set to India, sorted by runs. The list was read down to the twenty-fifth name; several batters sit within 200 runs of the last row, so the cut is arbitrary rather than meaningful.

Home figures come from the same query with the venue filter set to home. The away and neutral columns are computed here by subtracting the home line from the career line for runs, innings and not-outs, and recalculating the average from the resulting dismissals; they are not quoted figures. Runs per innings is also computed here, as runs divided by innings, and is included precisely because it differs from average.

The Australia table is the career query with the opposition filter set to Australia. Statsguru counts a not-out innings as an innings but not as a dismissal, which is why Dhoni's average and his runs per innings diverge so far; the two columns are kept separate rather than reconciled. All figures were read from Statsguru in the last week of August 2026 and cover men's ODIs completed by then. Nothing on this page is projected forward.