AB de Villiers has scored the fastest century in ODIs in the world. He scored 149 runs in just 31 balls.
Scoring a century fast is rare in ODI cricket. Some players can hit 100 runs in very few balls. They hit many sixes and fours to reach the milestone quickly.
These innings often change the result of the match. This list shows the fastest hundreds in ODI cricket till November 2025.
Top 10 Fastest Centuries in ODI Cricket
Here are the ten fastest centuries scored in ODI matches. These players reached 100 runs in the least number of balls.
| No | Player | Runs | Balls | 4s | 6s | Opponent | Date |
|---|---|---|---|---|---|---|---|
| 1 | AB de Villiers (SA) | 149 | 31 | 9 | 16 | West Indies | 18 Jan 2015 |
| 2 | Corey Anderson (NZ) | 131* | 36 | 6 | 14 | West Indies | 1 Jan 2014 |
| 3 | Shahid Afridi (PAK) | 102 | 37 | 6 | 11 | Sri Lanka | 4 Oct 1996 |
| 4 | Glenn Maxwell (AUS) | 106 | 40 | 9 | 8 | Netherlands | 25 Oct 2023 |
| 5 | Asif Khan (UAE) | 101* | 41 | 4 | 11 | Nepal | 16 Mar 2023 |
| 6 | Mark Boucher (SA) | 147* | 44 | 8 | 10 | Zimbabwe | 20 Sep 2006 |
| 7 | Brian Lara (WI) | 117 | 45 | 18 | 4 | Bangladesh | 9 Oct 1999 |
| 8 | Shahid Afridi (PAK) | 102 | 45 | 10 | 9 | India | 15 Apr 2005 |
| 9 | Jesse Ryder (NZ) | 104 | 46 | 12 | 5 | West Indies | 1 Jan 2014 |
| 10 | Jos Buttler (ENG) | 116* | 46 | 10 | 8 | Pakistan | 20 Nov 2015 |
All these innings were scored at very high strike rates. AB de Villiers holds the world record with just 31 balls. Jos Buttler has scored three centuries in the top 50 fastest list.
1. AB de Villiers – 149/31
AB de Villiers scored 149 runs in just 31 balls against the West Indies in Johannesburg on 18 January 2015. He hit 16 sixes and 9 fours during his innings. This is the fastest ODI century on record.

He reached 50 runs in 16 balls and completed his century in 31 balls. South Africa scored 439 runs in that match and won easily. This record has stood for over 10 years now.
2. Corey Anderson – 131*/36
Corey Anderson scored 131 runs without getting out off just 36 balls on 1 January 2014. He played against the West Indies in Queenstown. He hit 14 sixes and 6 fours during his knock.

He held the world record for over a year before de Villiers broke it in 2015. New Zealand won the match by 159 runs after posting a big total. Anderson came to bat when the score was already good and added quick runs to help his team.
3. Shahid Afridi – 102/37
Shahid Afridi was just 16 years old when he scored 102 runs in 37 balls against Sri Lanka. He played this innings in Nairobi on 4 October 1996. He hit 11 sixes and 6 fours in what was his first ODI innings.

He made his ODI debut a game before this one, but didn’t get a chance to bat. He held the world record for 17 years until Corey Anderson broke it in 2014. Pakistan won the match by 82 runs, and this innings made Afridi famous around the world.
4. Glenn Maxwell – 106/40
Glenn Maxwell scored 106 runs in 40 balls during the 2023 World Cup match. He played against the Netherlands in Delhi on 25 October 2023. He hit 8 sixes and 9 fours to reach his century.

Australia was already in a strong position when he came to bat at number 6. His century helped Australia post 399 runs on the board. Australia won the match by 309 runs in a one-sided contest.
5. Asif Khan – 101/41
Asif Khan scored 101 runs without getting out in 41 balls for the UAE against Nepal. He played this innings in Kirtipur on 16 March 2023. He hit 11 sixes and 4 fours during his stay at the crease.

He became the first UAE player to appear on this list. UAE scored 310 runs in that match but lost the match by nine runs.
6. Mark Boucher – 147/44
Mark Boucher scored his century off just 44 balls on 20 September 2006. He played against Zimbabwe in Potchefstroom. He hit 10 sixes and 8 fours during his innings.

Boucher was a wicketkeeper-batsman who usually batted lower in the order. South Africa scored 418 runs in that match, with Boucher coming in at number 4. He helped take the score past 400 runs, and South Africa won by 171 runs.
7. Brian Lara – 117/45
Brian Lara scored his century off 45 balls against Bangladesh in Dhaka on 9 October 1999. He hit 18 fours and 4 sixes during his innings. His score had more boundaries through fours than sixes, which was unusual for such a fast innings.

West Indies scored 314 runs in that match after Lara’s quick century. He reached his hundred in exactly 45 balls. West Indies won the match by 109 runs.
8. Shahid Afridi – 102/45
Shahid Afridi appears twice in the top 10 list of fastest centuries. On 15 April 2005, he scored 102 runs off 45 balls against India in Kanpur. He hit 9 sixes and 10 fours during his innings.

His innings helped Pakistan chase down the target of 250 runs in 42.1 overs with five wickets in hand. Afridi won the Player of the Match award for his batting performance.
9. Jesse Ryder – 104/46
Jesse Ryder scored a century off 46 deliveries on 1 January 2014 against the West Indies. He played this innings in Queenstown, the same match where Corey Anderson broke the world record.

He hit 5 sixes and 12 fours during his time at the crease. Two New Zealand players scored fast centuries in the same match, which was rare. New Zealand scored 283 runs and won the match by 159 runs.
10. Jos Buttler – 116/46
Jos Buttler scored the fastest century for England off just 46 balls against Pakistan in Dubai on 20 November 2015. He hit 8 sixes and 10 fours to reach his century.

Buttler usually bats in the middle order for England and finishes the innings. England scored 355 runs in that match and won by 84 runs.
Country-Wise Breakdown of Fastest ODI Centuries
Different countries have produced players who can score fast centuries in ODI cricket. Some countries have more players on this list than others based on their batting approach.
Top Countries with Most Fastest Centuries:
- South Africa: 8 centuries (AB de Villiers scored 4, Heinrich Klaasen scored 2, Mark Boucher scored 1, Quinton de Kock scored 1)
- England: 7 centuries (Jos Buttler scored 5, Eoin Morgan scored 1, Alex Hales scored 1)
- Sri Lanka: 6 centuries (Sanath Jayasuriya scored 5, Tillakaratne Dilshan scored 1)
- Pakistan: 6 centuries (Shahid Afridi scored 4, Sharjeel Khan scored 1, Fakhar Zaman scored 1)
- Australia: 5 centuries (Glenn Maxwell scored 2, Adam Gilchrist scored 2, Shane Watson scored 1)
- India: 5 centuries (Virender Sehwag scored 4, Virat Kohli scored 1)
- New Zealand: 4 centuries (Corey Anderson scored 1, Jesse Ryder scored 2, Michael Bracewell scored 1)
- West Indies: 4 centuries (Chris Gayle scored 2, Brian Lara scored 1, Evin Lewis scored 1)
South Africa and England have the most entries in the fastest centuries list across ODI cricket. AB de Villiers and Jos Buttler appear multiple times because of their consistent fast scoring.
Source: BBC
Sri Lanka’s Sanath Jayasuriya was one of the first players to score many fast centuries in the 1990s and 2000s. Pakistan’s Shahid Afridi held the world record for 17 years from 1996 to 2013.
Also Read:
Conclusion: AB de Villiers has Scored Fastest Century In Just 31 Balls
AB de Villiers’ 31-ball century is still the fastest after ten years. Several players have come close to this record but none have broken it yet.
Glenn Maxwell, Jos Buttler, and Heinrich Klaasen continue to score fast hundreds in recent matches.
Fast centuries show how batsmen approach ODI cricket in the modern era. Players are scoring runs quicker than they did in earlier decades.
FAQs
Jos Buttler has scored five centuries in 75 balls or fewer across his ODI career. AB de Villiers has scored four such centuries during his playing days. These two players appear most often on the fastest centuries list in ODI history.
No player has scored a century in under 30 balls in ODI cricket. AB de Villiers’ 31-ball century remains the fastest on record. No one has reached 100 runs in fewer than 31 balls in ODI history so far.
Queenstown in New Zealand saw two fast centuries in one match on 1 January 2014. Corey Anderson scored his century in 36 balls while Jesse Ryder scored in 46 balls. This is the only time two players scored such fast centuries in the same ODI match.
The record is difficult to break, but it is possible for someone to do it. A player would need to hit almost every ball for a boundary to beat this record. They would need both power and timing to score so quickly. The record has stood since 2015 without anyone coming close.
West Indies has been on the receiving end of several fast centuries over the years. Players like AB de Villiers, Corey Anderson, Jesse Ryder, and Jos Buttler have all scored fast hundreds against them. Their bowling has struggled against aggressive batsmen in several matches.
