Most sixes in ODI cricket: Rohit Sharma tops the all-time list
Rohit Sharma has hit the most sixes in ODI cricket, passing Shahid Afridi in November 2025 and moving on to 381. Here is the full all-time top 10 with matches, innings and sixes.
Aug 2, 2024 · Updated Oct 4, 2026
Shahid Afridi held the record for most sixes in ODI cricket for 15 years. He does not hold it any more. Rohit Sharma went past him at Ranchi on 30 November 2025 and has kept adding to the tally since, which makes this one of the few all-time lists in cricket that is still moving.
Here is the current top 10, how Rohit took the record, and the rate at which the three men above 300 sixes got there.
Most sixes in ODI cricket: the all-time top 10
Eight of these ten careers are finished, so those figures are final. Only Rohit Sharma and Jos Buttler are still playing, and only their numbers can change.
| # | Player | Country | Matches | Innings | Sixes | Career |
| 1 | Rohit Sharma | India | 291 | 283 | 381 and counting | 2007-present |
| 2 | Shahid Afridi | Pakistan | 398 | 369 | 351 | 1996-2015 |
| 3 | Chris Gayle | West Indies | 301 | 294 | 331 | 1999-2019 |
| 4 | Sanath Jayasuriya | Sri Lanka | 445 | 433 | 270 | 1989-2011 |
| 5 | MS Dhoni | India | 350 | 297 | 229 | 2004-2019 |
| 6 | Eoin Morgan | England | 248 | 230 | 220 | 2006-2022 |
| 7 | AB de Villiers | South Africa | 228 | 218 | 204 | 2005-2018 |
| 8 | Brendon McCullum | New Zealand | 260 | 228 | 200 | 2002-2016 |
| 9 | Sachin Tendulkar | India | 463 | 452 | 195 | 1989-2012 |
| 10 | Jos Buttler | England | 204 | 176 | 193 and counting | 2012-present |
Three Indians are in the top 10: Rohit, Dhoni and Tendulkar. Sourav Ganguly (190) dropped to 11th when Buttler passed him in September 2026. Only three men have ever passed 300 sixes in ODI cricket.
How Rohit Sharma took the record
Rohit went into the first ODI against South Africa at the JSCA International Stadium Complex in Ranchi on 30 November 2025 needing two sixes. He got both in the 15th over, hitting Prenelan Subrayen for back-to-back maximums. The first took him to 350, the only Indian to reach that mark. The second drew him level with Afridi. His third six of the innings, on the way to 57, put him top of the all-time list on 352.

That 352 is the figure most record lists still carry, because it is where they stopped updating. Rohit has played 14 more ODIs since that night and hit 29 more sixes, which takes him to 381 from 291 matches. At Lord’s on 19 July 2026 he made 138 off 110 balls with 17 fours and five sixes, becoming the first India men’s batter to score an ODI hundred at the ground. His biggest haul since the record came at Guwahati on 30 September 2026: six sixes in 101 off 75 balls, as India chased 406.
| Series | Matches | Sixes | Running total |
| At Ranchi, 30 Nov 2025 (record broken) | — | — | 352 |
| Rest of the South Africa series, Dec 2025 | 2 | 3 | 355 |
| New Zealand in India, Jan 2026 | 3 | 2 | 357 |
| Afghanistan in India, Jun 2026 | 3 | 6 | 363 |
| India in England, Jul 2026 | 3 | 6 | 369 |
| West Indies in India, Sep-Oct 2026 | 3 | 12 | 381 |
Three routes to 300 ODI sixes
The headline number hides how differently the top three got there. Divide sixes by innings and the gap opens up.
| Player | Sixes | Innings | Sixes per innings |
| Rohit Sharma | 381 | 283 | 1.35 |
| Chris Gayle | 331 | 294 | 1.13 |
| Shahid Afridi | 351 | 369 | 0.95 |
| Sachin Tendulkar | 195 | 452 | 0.43 |
Afridi needed 398 matches to reach 351. Rohit passed that mark in 277, which is 121 matches fewer. Put the other way, Afridi’s record took a career of nearly two decades and the highest strike rate of his generation; Rohit has cleared it while batting in a format where 350 is a par score rather than a winning one.
Tendulkar is the instructive one at the bottom of that table. He played 463 ODIs, more than anyone else in the top 10, and finished on 195 sixes. Rohit has hit 186 more sixes in 169 fewer innings. Neither man was a worse batter than the other; the ball, the bats, the fielding restrictions and the two new balls changed underneath them.
The top of the list, player by player
Rohit Sharma | 381 ODI sixes
Rohit made his ODI debut against Ireland at Belfast in 2007 and did not become an opener until 2013, which is when the six-hitting took off. He owns three ODI double-hundreds, and his 209 against Australia at Bengaluru in November 2013 contained 16 sixes, the most in an ODI innings at the time. He also holds the record for the most sixes in international cricket. He gave up the India ODI captaincy in October 2025, when Shubman Gill took over, but remains in the side as an opener.
Shahid Afridi | 351 ODI sixes
Afridi held this record from 2010 until 2025. He debuted against Kenya at Nairobi in 1996 and finished with 351 sixes in 398 matches across 19 years. He hit 476 sixes in all international cricket, which is still third on that list. For most of his career the record was not close: he passed Jayasuriya and then simply kept going.
Chris Gayle | 331 ODI sixes
Gayle sits third with 331 from 301 matches, and his 215 against Zimbabwe at Canberra in the 2015 World Cup included 16 sixes. He finished on 553 international sixes, second only to Rohit. Worth noting that the enormous six tallies attached to Gayle’s name in most write-ups are his all-T20 figures including franchise leagues, which is a different list entirely.

Sanath Jayasuriya | 270 ODI sixes
Jayasuriya hit 270 sixes in 445 matches between 1989 and 2011, and he did it first. The Sri Lankan opener’s approach in the 1996 World Cup is the point at which ODI batting changed, and he held the six-hitting record before Afridi took it. He ended with 352 international sixes.
MS Dhoni | 229 ODI sixes
Dhoni completes the top five on 229 from 350 matches. He is the only wicketkeeper in the list and the only one who hit most of his sixes while finishing chases rather than starting innings. His international tally was 359.
ODI sixes are not the same as international sixes
This is where most lists on this subject go wrong, so it is worth stating plainly. There are three separate counts and they are routinely mixed up:
- ODI sixes — this list. Rohit leads on 381.
- International sixes — Tests, ODIs and T20Is combined. Rohit leads on 674, made up of 381 in ODIs, 205 in T20Is and 88 in Tests. Gayle is second on 553.
- All-T20 sixes — internationals plus the IPL, Big Bash, CPL and the rest. Gayle is past a thousand here, which is why his name attaches to six-hitting records that have nothing to do with this page.
We keep those separated: see most sixes in international cricket, most sixes in T20 internationals and most sixes in Tests.
Who can still climb this list
Very few players can, which is what makes it unusual. Eight of the ten careers here are closed. Rohit is one of two men in the top 10 still playing, and every six he hits extends a record rather than chasing one.
The other is Jos Buttler. He went into the second ODI against Sri Lanka at Leeds on 24 September 2026 on 188, hit five sixes in 69 and passed Sourav Ganguly’s 190 to enter the top 10 on 193. Tendulkar’s 195 is next. Behind him, Virat Kohli is the closest active player on 181, 12 short of Buttler, after hitting nine sixes in his unbeaten 139 against West Indies at Thiruvananthapuram on 27 September. India tour New Zealand for five ODIs from 4 November 2026, so the record has room to move again before the year is out.
Quick answers
Who has hit the most sixes in ODI cricket?
Rohit Sharma, with 381 in 291 matches. He passed Shahid Afridi’s 351 on 30 November 2025.
When did Rohit Sharma break the record?
In the first ODI against South Africa at Ranchi on 30 November 2025, taking his tally to 352.
How long did Shahid Afridi hold the record?
15 years, from 2010 until November 2025.
How many players have hit 300 sixes in ODIs?
Three: Rohit Sharma, Shahid Afridi and Chris Gayle.
Who has hit the most sixes in a single ODI innings?
Eoin Morgan, with 17 against Afghanistan in 2019. Rohit’s 16 against Australia at Bengaluru in 2013 was the record until then.
Which Indians are in the top 10?
Three: Rohit Sharma (381), MS Dhoni (229) and Sachin Tendulkar (195). Sourav Ganguly (190) is 11th.
Six tallies are current to the end of India’s home ODI series against West Indies on 3 October 2026. Photo credit: Alamy





