Virat Kohli holds the record for the most centuries in ODI cricket, with a total of 53 centuries. He scored his 53rd ODI century against South Africa on December 3, 2025.
The top three players with the most ODI hundreds are all from India. Virat Kohli leads the list, followed by Sachin Tendulkar. Rohit Sharma ranks third, but he is significantly behind in terms of numbers. Other players do not come close to reaching their achievements.
This article highlights the leading century-makers in ODI cricket, featuring top players such as Virat Kohli, Sachin Tendulkar, and Rohit Sharma, as well as other iconic players.
Most Centuries in ODI – Top Players Summary Table
Virat Kohli and Rohit Sharma are the only two active players in the list of those with the most ODI centuries.

In this table, you can find a ranked list of top ODI players with the most centuries, highlighting their total centuries, overall matches played, and career span.
| Sr. No. | Player | Hundreds | Matches | Country | Span |
|---|---|---|---|---|---|
| 1 | V Kohli | 53 | 308 | India | 2008–2025 |
| 2 | SR Tendulkar | 49 | 463 | India | 1989–2012 |
| 3 | RG Sharma | 33 | 279 | India | 2007–2025 |
| 4 | RT Ponting | 30 | 375 | Australia / ICC | 1995–2012 |
| 5 | ST Jayasuriya | 28 | 445 | Sri Lanka / Asia XI | 1989–2011 |
| 6 | HM Amla | 27 | 181 | South Africa | 2008–2019 |
| 7 | AB de Villiers | 25 | 228 | South Africa / Africa XI | 2005–2018 |
| 8 | CH Gayle | 25 | 301 | West Indies / ICC | 1999–2019 |
| 9 | KC Sangakkara | 25 | 404 | Sri Lanka / Asia XI / ICC | 2000–2015 |
| 10 | DA Warner | 22 | 161 | Australia | 2009–2023 |
Virat Kohli became the first player to hit seven or more ODI centuries against three or more different teams. He is also the second-highest run-scorer in ODI history with 14,492 runs.
1. Virat Kohli
Virat Kohli, one of the greatest ODI batsmen of all time, has played 308 matches and 296 innings between 2008 and 2025. He has scored 14,557 runs at an average of 58.46, including 53 centuries and 76 fifties, with a highest score of 183.

His strike rate is 93.65, and he has hit 1,356 fours and 164 sixes, showing his aggressive style of play. He scored his first century against Sri Lanka in 2009 and has since made many memorable innings. This success has helped him set the record for the most centuries in ODIs.
2. Sachin Tendulkar
Sachin Tendulkar played 463 matches and 452 innings from 1989 to 2012, scoring 18,426 runs at an average of 44.83. He registered 49 centuries and 96 fifties, with a career-best 200 against South Africa.

Sachin Tendulkar faced more than 21,368 balls and had a strike rate of 86.23. He hit 2,016 fours and 195 sixes. His 41 not outs show he could finish innings well. Tendulkar’s record of 49 ODI centuries stood for years as the goal for new batsmen.
3. Rohit Sharma
Rohit Sharma has played 279 matches and 271 innings between 2007 and 2025, scoring 11,516 runs at an average of 49.21. He has registered 33 centuries and 60 fifties, with a career-high of 264, the highest individual ODI score ever.

Rohit has faced 12,402 balls and has a strike rate of 92.85. He has hit 1,081 fours and 355 sixes, showing that he can play both long innings. Throughout his career, he has turned good starts into big scores consistently.
4. Ricky Ponting
Ricky Ponting, Australia’s legendary batsman, played 375 ODIs with 365 innings from 1995 to 2012, scoring 13,704 runs at an average of 42.03. He recorded 30 centuries and 82 fifties, with a highest score of 164.

Facing 17,046 balls, Ponting had a strike rate of 80.39, hitting 1,231 fours and 162 sixes. Landmark innings include 140 runs against India in 2003 and 140 against Sri Lanka in 2005, contributing to several match-winning totals.
5. Sanath Jayasuriya
Sanath Jayasuriya, one of Sri Lanka’s most explosive ODI batsmen, played 445 matches with 433 innings from 1989 to 2011. He scored 13,430 runs at an average of 32.36, registering 28 centuries and 68 fifties, with a top score of 189.

After facing 14,725 balls, he achieved a strike rate of 91.20, hitting 1,500 fours and 270 sixes. Notable hundreds include 134 runs against Pakistan and 157 against India. Recognized as a match-winner, he transformed ODI opening batting.
6. Hashim Amla
Hashim Amla played 181 ODIs with 178 innings between 2008 and 2019, scoring 8,113 runs at an average of 49.46. He scored 27 centuries and 39 fifties, with a highest score of 159, facing 9,178 balls at a strike rate of 88.39, hitting 822 fours and 53 sixes.

He was known for his strong technique and consistency. He helped South Africa build their innings and partnerships. Some of his memorable centuries include 124* against England and 159 against Bangladesh.
7. AB de Villiers
AB de Villiers played 228 matches and 218 innings from 2005 to 2018, scoring 9,577 runs at an average of 53.50. He made 25 centuries and 53 fifties, with a highest score of 176. Facing 9,473 balls, his strike rate was 101.09, hitting 840 fours and 204 sixes.

AB de Villiers, nicknamed “Mr. 360,” is known for some of his best performances, including scoring 149 runs against the West Indies and 176 runs against India. He could adjust his playing style to fit different match situations, whether he needed to build a steady score or accelerate during a chase.
8. Chris Gayle
Chris Gayle played 301 ODIs with 294 innings from 1999 to 2019, scoring 10,480 runs at 37.83, including 25 centuries and 54 fifties. His highest score was 215, facing 12,019 balls at a strike rate of 87.19, hitting 1,128 fours and 331 sixes.

Gayle’s powerful batting helped the West Indies get off to a quick start. He scored 215 runs against Zimbabwe and 125 not out against India. His ability to dominate bowlers and hit many sixes made him a strong batsman in ODIs for over 20 years.
9. Kumar Sangakkara
Kumar Sangakkara played 404 ODIs with 380 innings from 2000 to 2015, scoring 14,234 runs at 41.98, including 25 centuries and 93 fifties. His highest score was 169, facing 18,048 balls at a strike rate of 78.86, hitting 1,385 fours and 88 sixes.

Kumar Sangakkara was a skilled and reliable batsman. He often steadied his team’s innings. He scored memorable centuries, including 124 runs against Pakistan and 124 against India. His good timing and decisions during matches made him one of the most dependable ODI batters.
10. David Warner
David Warner played 161 ODIs with 159 innings from 2009 to 2023, scoring 6,932 runs at 45.30, including 22 centuries and 33 fifties. His highest score was 179, facing 7,127 balls at a strike rate of 97.26, hitting 733 fours and 130 sixes.

David Warner’s aggressive batting style helped Australia get off to strong starts in matches. He scored memorable centuries, including 179 runs against Pakistan and 126 runs against England. Known for his attacking opening play, he could create a strong lead as needed.
Who are the top 5 Indian players with the most centuries in ODI?
Virat Kohli leads with impressive consistency, followed closely by Sachin Tendulkar, who has 49 hundreds.
This table shows the top five Indian players with the most centuries in ODI cricket.
| Sr. No. | Player | Centuries (100s) | Matches (ODIs) | Span |
|---|---|---|---|---|
| 1 | Virat Kohli | 53 | 308 | 2008–2025 |
| 2 | Sachin Tendulkar | 49 | 463 | 1989–2012 |
| 3 | Rohit Sharma | 33 | 279 | 2007–2025 |
| 4 | Sourav Ganguly | 22 | 308 | 1992–2007 |
| 5 | Shikhar Dhawan | 17 | 164 | 2010–2022 |
Rohit Sharma’s powerful batting keeps him among the best, while Sourav Ganguly and Shikhar Dhawan complete the list.
Suggested Read:
Conclusion – Virat Kohli sets world records for the most ODI centuries
Virat Kohli continued his outstanding form in One Day Internationals (ODIs) by scoring 102 runs off 93 balls against South Africa. This innings marked his second consecutive century in the series, bringing his total to 53 ODI centuries.
With this achievement, Kohli surpassed Sachin Tendulkar’s records for the most centuries at a specific batting position and the most centuries scored at home. It solidifies his dominance in international cricket.
All these players have made a significant impact on ODI history, inspiring countless generations of cricketers and fans worldwide.
FAQs
Virat Kohli holds the record with 53 ODI centuries.
Rohit Sharma holds the highest ODI score of 264 runs.
Sachin Tendulkar scored 49 centuries in his ODI career.
Ricky Ponting (30), Sanath Jayasuriya (28), Hashim Amla (27), AB de Villiers (25). They are among the top ODI century-makers.
AB de Villiers scored the fastest ODI century in 31 balls.
