Virat Kohli has scored the most centuries in ODI cricket, 55. He passed Sachin Tendulkar’s 49 at the 2023 World Cup and has added five more since, and he is still playing — so the record is not finished.

The top three are all India batters, and the first two are the only men to have reached 40.

Most centuries in ODI cricket

Every batter with 19 or more ODI hundreds, complete to 30 September 2026. Source: ESPNcricinfo.

Rank Player Team Span Mat Runs 100s 50s Ave
1 Virat Kohli India 2008-2026 316 15109 55 79 59.01
2 Sachin Tendulkar India 1989-2012 463 18426 49 96 44.83
3 Rohit Sharma India 2007-2026 290 12028 35 62 49.09
4 Ricky Ponting Australia 1995-2012 375 13704 30 82 42.03
5 Sanath Jayasuriya Sri Lanka 1989-2011 445 13430 28 68 32.36
6 Hashim Amla South Africa 2008-2019 181 8113 27 39 49.46
7 AB de Villiers South Africa 2005-2018 228 9577 25 53 53.50
7 Chris Gayle West Indies 1999-2019 301 10480 25 54 37.83
7 Kumar Sangakkara Sri Lanka 2000-2015 404 14234 25 93 41.98
10 Quinton de Kock South Africa 2013-2026 164 7152 23 32 45.84
11 Tillakaratne Dilshan Sri Lanka 1999-2016 330 10290 22 47 39.27
11 Sourav Ganguly India 1992-2007 311 11363 22 72 41.02
11 David Warner Australia 2009-2023 161 6932 22 33 45.30
14 Herschelle Gibbs South Africa 1996-2010 248 8094 21 37 36.13
14 Ross Taylor New Zealand 2006-2022 236 8607 21 51 47.55
16 Babar Azam Pakistan 2015-2026 143 6626 20 38 53.43
16 Shai Hope West Indies 2016-2026 157 6428 20 32 50.21
16 Joe Root England 2013-2026 195 7903 20 48 50.66
16 Saeed Anwar Pakistan 1989-2003 247 8824 20 43 39.21
20 Mahela Jayawardene Sri Lanka 1998-2015 448 12650 19 77 33.37
20 Brian Lara West Indies 1990-2007 299 10405 19 63 40.48

Virat Kohli’s 55

Kohli’s 50th came in the 2023 World Cup semi-final against New Zealand at the Wankhede on 15 November 2023, a 113-ball 117 on the day he went past Tendulkar. He has added five since: an unbeaten 100 against Pakistan at Dubai in February 2025, 135 and 102 against South Africa at Ranchi and Raipur in late 2025, 124 against New Zealand at Indore in January 2026, and 139 not out from 88 balls against West Indies at Thiruvananthapuram on 27 September 2026.

He also has the highest average of anyone on the list, 59.01, more than five clear of AB de Villiers. He tops both columns: no one on the list has more hundreds, and no one has a better average.

Sachin Tendulkar’s 49

Tendulkar held the record for a decade. He made 49 in 463 matches, 147 more than Kohli has played, and his 18,426 runs are still the most in ODI cricket by a distance.

The first of the 49 took a long time. He debuted against Pakistan in 1989 and did not reach three figures until 9 September 1994, when he made 110 from 130 balls against Australia at the R Premadasa Stadium in Colombo in the Singer World Series — his 79th one-day international. He then made two more before the year was out.

Most ODI centuries for India

India supply three of the top four in the world list and four of the 21.

Rank Player Span Mat Runs 100s 50s Ave
1 Virat Kohli 2008-2026 316 15109 55 79 59.01
2 Sachin Tendulkar 1989-2012 463 18426 49 96 44.83
3 Rohit Sharma 2007-2026 290 12028 35 62 49.09
4 Sourav Ganguly 1992-2007 308 11221 22 71 40.95
5 Shikhar Dhawan 2010-2022 167 6793 17 39 44.11
6 Virender Sehwag 1999-2013 241 7995 15 37 35.37
7 Yuvraj Singh 2000-2017 301 8609 14 52 36.47
8 Rahul Dravid 1996-2011 340 10768 12 82 39.15

Sourav Ganguly’s matches and runs differ slightly between the two tables because three of his one-day internationals were played for the Asia XI rather than India. His hundred count, 22, is the same either way.

Who is still playing

Six of the 21 are still active: Kohli on 55, Rohit Sharma on 35, Quinton de Kock on 23, and Babar Azam, Shai Hope and Joe Root on 20 each. Rohit’s most recent was 101 against West Indies at Guwahati on 30 September 2026, three days after Kohli’s 55th.

Babar Azam has reached 20 in only 143 matches, fewer than anyone else on the list, and Hashim Amla’s 27 from 181 is the fewest matches of anyone who got past 25.

Most centuries in ODI cricket: quick answers

Who has scored the most centuries in ODI cricket? Virat Kohli, with 55.

How many ODI hundreds did Sachin Tendulkar score? 49, in 463 matches.

When did Kohli pass Tendulkar? On 15 November 2023, with his 50th, in the World Cup semi-final against New Zealand.

Who has the most ODI hundreds outside India? Ricky Ponting, with 30 for Australia.

Which non-India batter is closest among active players? Quinton de Kock, on 23.

See also our lists of the most runs in international cricket and the most ODI centuries for India.

Follow us on Telegram for the latest updates from the world of sports!

Interested in cricket betting? Click here to check out the list of top sites.

Featured photo: AFP / Munir uz Zaman