
Rohit Sharma has scored 32 hundreds in ODI cricket, the third-most by any batter in history. Here, we rank each of his ODI tons from worst to best.
Before diving into the rankings, a quick stat recap of Rohit's ODI tons. After Virat Kohli (51) and Sachin Tendulkar (49), Rohit Sharma's tally of 32 is the third-highest in the format's history. The closest active cricketer in this metric is Babar Azam with 19 tons at the time of writing (April 17, 2025). Rohit is also the only cricketer ever with three ODI double-hundreds.
Fourteen out of Rohit's 32 hundreds have come at home, 10 away, and eight at neutral venues. Five out of 32 have come under his own captaincy, seven under MS Dhoni's, 18 under Kohli's, and two under Suresh Raina's. Rohit holds the record for the most hundreds in World Cup history (seven), with five of those coming in the 2019 edition.
Only two out of the 32 tons have come outside the opening position for Rohit. Innings-wise, the split is exactly half, with 16 coming while batting first and 16 chasing. Overall, only seven of Rohit's ODI hundreds have come in a defeat for India, with 25 in wins. The last ODI India lost in which Rohit scored a hundred was in the 2019 World Cup against England. Now, onto the rankings.
Also read: MS Dhoni's ODI hundreds, ranked from worst to best
Also read: Virat Kohli's ODI hundreds, ranked from worst to best
32. 101 vs New Zealand, Indore, 2023
A run-fest on a flat surface with small boundaries. India posted 385 batting first. Rohit's 101 (85) was accompanied by Shubman Gill's 112 (78). India won by 90 runs. One of Rohit's easier efforts.
31. 102 vs England, Birmingham, 2019
Another World Cup hundred, this one resulted in a defeat for India. Chasing 338, Rohit needed to provide a strong start, but could only amble to 11 (26) inside the powerplay. He reached his 50 off 65 balls, and could never catch up to the required rate, perishing for 102 off 109 as India lost by 31 runs.
30. 104 vs Sri Lanka, Colombo, 2017
India racked up 375 on a batting paradise. Kohli top-scored with 131 off 96, stitching a 219-run stand with Rohit, who made a comfortable 104 (88).
29. 114 vs Zimbabwe, Bulawayo, 2010
Rohit's first-ever ODI hundred and one of just two that came in the middle order. While his 114 (119) did take India from 61-3 to 285-5, it wasn't enough as Zimbabwe chased it down with ten balls to spare.
28. 111* vs Pakistan, Dubai, 2018
His second hundred as ODI captain, Rohit's Dubai ton came against a strong bowling attack on paper - Shaheen Afridi, Mohmmad Amir, Hasan Ali, Shadab Khan - but one that wasn't able to generate a single breakthrough while defending 238.
27. 159 vs West Indies, Visakhapatnam, 2019
Another ODI where both Indian openers made hundreds, Rohit's 159 off 138 was accompanied by Rahul's 102 off 104. India racked up 387-5 against a hapless West Indies attack, winning by 107 runs.
26. 152* vs West Indies, Guwahati, 2018
West Indies put up 322 batting first on the back of a fine hundred by Shimron Hetmyer (106 off 78), but India chased it down with 7.5 overs and eight wickets to spare. Rohit remained unbeaten on 152 off 117. Kohli scored 140 off 107 as well as West Indies were not given a sniff.
25. 162 vs West Indies, Brabourne, 2019
A week after plundering an unbeaten 152 in Guwahati, Rohit made a second daddy hundred - 162 off 137 - against the West Indies in the third match of the series. The match followed a familiar script: another huge India total (377) and another huge India win (224 runs).
24. 124 vs Australia, Brisbane, 2016
This one came in a loss. Batting first, Rohit made 124 off 127 as India put up 308 on the board. Australia chased it down with an over to spare. Against a relatively weak Australian bowling attack, Rohit could possibly have done better.
23. 103 vs Sri Lanka, Leeds, 2019
A World Cup ton against a Sri Lanka attack that lacked any real threat. Rohit's opening partner KL Rahul also scored a hundred (111 off 118) to make things easier in a comfortable run-chase of 265.
22. 123* vs Bangladesh, Birmingham, 2017
Rohit's second hundred in a global knockout game against Bangladesh. Chasing 265, he made things look easy as India's top three gunned the total down to reach the final of the 2017 Champions Trophy.
21. 101* vs Sri Lanka, Bulawayo, 2010
Two days after scoring his first international ton, Rohit scored his second. Batting at No.4, he added a 154-run third-wicket stand with Kohli to show the world a glimpse of what was to come. India aced the chase of 243, winning by seven wickets with more than six overs left.
20. 124* vs Sri Lanka, Pallekele, 2017
Chasing 218 on a slow Sri Lankan wicket, Rohit anchored the innings from one end as wickets fell from the other. At 61-4, he finally found support from MS Dhoni (67 not out off 86) as the duo finished the chase off with nearly five overs left.
19. 104 vs Bangladesh, Birmingham, 2019
His fourth and arguably the most underrated hundred of the 2019 World Cup, Rohit added 180 for the first wicket with Rahul before being dismissed for 104 off 92. India made 314, but were given a scare by Bangladesh, who got as close as 286.
18. 125 vs Australia, Nagpur, 2017
Chasing 243, Rohit made 125 off 109 against an Australian attack that had Pat Cummins, James Faulkner, Nathan Coulter-Nile, and Adam Zampa. India won by seven wickets with 43 balls left.
17. 138 vs Australia, Melbourne, 2015
Rohit's 138 off 139 took India to 267 in this tri-series match before the 2015 World Cup. Suresh Raina was the next-highest scorer with 51 off 63 as no one else crossed 20. India lost by four wickets.
16. 133 vs Australia, Sydney, 2019
Another lone battle that came in a losing cause in Australia, Rohit kept India's hopes alive in a chase of 289. When he was the seventh wicket to fall, for 133 off 129, the match was effectively sealed as India lost by 34 runs.
15. 137 vs Bangladesh, Melbourne, 2015
A knock that is remembered for an infamous no-ball call that gave Rohit a reprieve when he was on 91. His 137 off 126 eventually took India to 302 in the World Cup game, resulting in a 109-run win.
14. 147 vs New Zealand, Kanpur, 2017
Against a full-strength New Zealand attack, Rohit provided a strong start. By the time he was dismissed, India were 259-2 in the 42nd over. They ultimately got 337, that proved to be just about enough in a high-scoring thriller, winning by six runs.
13. 171* vs Australia, Perth, 2016
Till date the highest ODI score by an Asian batter in Australia, Rohit's 171 off 163 displayed his ability to play the long knocks on foreign shores as well. However, it perhaps didn't come quickly enough as India lost by five wickets defending 309.
12. 119 vs Australia, Bengaluru, 2020
A measured ton against a full-strength Australian attack comprising Starc, Cummins, Hazlewood, and Zampa. Rohit's 119 off 128 laid a comfortable platform for Kohli and Shreyas Iyer to complete the chase of 287.
11. 115 vs South Africa, Gqeberha, 2018
Rohit showed his class in this lone hand, holding the innings together and taking India to 274-7 with the next-highest contribution being 36. Kuldeep Yadav (4-57) and Yuzvendra Chahal (2-43) then secured India a 73-run victory.
10. 140 vs Pakistan, Manchester, 2019
Rohit's only World Cup hundred against Pakistan (till date). He took on the bowling with extreme ease, making 140 off 113 as India put up 336-5, winning by 89 runs.
9. 137* vs England, Nottingham, 2018
Against a full-strength England unit in the peak of their ODI powers, Rohit made 137 unbeaten runs off just 114 balls to take India to victory with nearly 10 overs remaining in a chase of 269.
8. 119 vs England, Cuttack, 2025
His most recent international hundred, this one came in the middle of a wretched run of form, bringing back some confidence and hope ahead of the 2025 Champions Trophy. Chasing 305, Rohit took only 90 balls for his 119, smacking seven sixes and laying the platform for a comfortable victory.
7. 131 vs Afghanistan, Delhi, 2023
Having activated beast mode in the 2023 World Cup, Rohit reached his 31st ODI hundred off just 63 balls, the quickest of his career. He finished on 131 off 84 in a chase of 273, which India completed in 35 overs. It's the quickest 250-plus run-chase in World Cup history.
6. 150 vs South Africa, Kanpur, 2015
India were chasing 304 after an AB de Villiers classic (104 not out off 73) in the first innings. Rohit held the innings together as no one else went past 60. India needed 35 off the last overs when he was dismissed. They lost by five runs. What makes this knock even more special? The four South African bowlers who bowled ten overs were named Dale Steyn, Morne Morkel, Kagiso Rabada, and Imran Tahir.
5. 122* vs South Africa, Southampton, 2019
The first entry in the top five is his first hundred at the 2019 World Cup. It was India's first match of the tournament and Rohit set the tone early. Chasing 228, India lost Shikhar Dhawan and Kohli by the time they reached 54, but Rohit ensured there were no further wobbles as he saw the game through. India won by six wickets.
4. 208* vs Sri Lanka, Mohali, 2017
The third double-hundred of Rohit's ODI career. By this time, he had not only written himself into record books, but had complete record books written on him. Following on in his usual template, Rohit took 115 balls for his first hundred, and a scarcely believable 35 balls for his second. It was also his first international hundred as captain.
3. 141* vs Australia, Jaipur, 2013
For a sub-150 score to displace one of the three double hundreds in the top three, it needed to be something special. Rohit's unbeaten 141 in Jaipur was just that. It came three years after his second ODI ton, and was his first one as an opener. Kohli made the quickest ODI hundred by an Indian at the other end, off just 52 balls, but somehow, it wasn't enough to take the spotlight from Rohit's 123-ball effort. A 360 run-chase was completed under 44 overs and suddenly, world cricket was exposed to new possibilities.
2. 209 vs Australia, Bengaluru, 2013
Two weeks after the Jaipur epic, Rohit smashed his first ODI double hundred, in the seventh match of the same series. His first hundred came off 114 balls, and the second off 42. The 16 sixes he hit in this knock was an ODI world record (that has since been broken).
1. 264 vs Sri Lanka, Kolkata, 2014
Three out of every four team ODI innings don't even reach 264 - Rohit made more in one knock in Kolkata. Sri Lanka made 13 fewer runs than him that day. No one had ever hit more than 25 fours in an ODI innings. Rohit hit 33. Batting standards have gone through the roof since, but this feat remains untouched, and likely untouchable. Whether you scrolled all the way down at once, or read through each entry, you knew this was coming.
Follow Wisden for all cricket updates, including live scores, match stats, quizzes and more. Stay up to date with the latest cricket news, player updates, team standings, match highlights, video analysis and live match odds.