Ben Stokes will retire from one-day internationals after Tuesday’s match with South Africa.
England’s Test captain inspired his country to success in the 2019 Cricket World Cup, as they beat New Zealand in the final at Lord’s.
The 31-year-old says he wants to concentrate on his Test career.
In a post on Instagram, Stoke wrote that retiring was an “incredibly tough decision to make” but added that “I can’t give my teammates 100% of myself in this format”.
“The England shirt deserves nothing less from anyone who wears it,” he said.
“Three formats are just unsustainable for me now. Not only do I feel that my body is letting me down because of the schedule and what is expected of us, but I also feel that I am taking the place of another player who can give Jos and the rest of the team their all.
“It’s time for someone else to progress as a cricketer and make incredible memories like I have over the past 11 years.”
He added that he will continue to play T20 cricket and wished recently appointed captain, Jos Buttler, and new coach Matthew Mott “every success going forward”.
Stokes has played 101 ODIs for England, after he made his debut in August 2011 against Ireland.
He has scored 2,919 runs and taken 74 wickets in the format and was part of the team that lifted the 2019 World Cup at Lords in 2019, scoring 84 not out in the final.
In April 2022, Stokes was named as England’s Test captain after Joe Root stepped down.
In a statement, the ECB said Stokes’ ODI career would “forever be remembered” for his role in the World Cup final at Lord’s, where he scored an unbeaten 84 to help England win via a Super Over.
“I know this must have been a tough decision, but I completely understand why he has reached this conclusion,” added Rob Key, the managing director of England men’s cricket.
In June, World Cup-winning captain Eoin Morgan retired from international cricket, with Buttler appointed as the side’s new captain.