Veteran pacer Lasith Malinga was sacked as ODI skipper with Sri Lanka Cricket (SLC) Wednesday naming Test captain Dimuth Karunaratne to lead the country at the 50 over World cup in England beginning May 30.
The World cup squad will be announced Thursday, SLC said.
"Karunaratne's appointment was ratified by the Minister of Telecommunications, Foreign Employment and Sports Honorable Harin Fernando," Sri Lanka Cricket said in a release.
The 31-year-old Karunaratne, who didn't play a single ODI since the 2015 World Cup, has only featured in 17 ODIs and averages 15.83 with a high score of 60.
He will replace Malinga, who had captained the team during the 0-5 loss to South Africa in the ODI series.
Malinga, who led Sri Lanka to a World T20 trophy in 2014, had personal disagreements with the team management and certain senior players, which also soured his stint as captain.
Karunaratne, a Test opener, forced himself into the ODI captaincy following his success in the Test arena. He led Sri Lanka to a historic 2-0 Test triumph in South Africa and made Sri Lanka the only Asian side to win a Test series in South Africa.
The other option was Angelo Mathews, who has been Sri Lanka's ODI captain in two separate stints before. But Mathews is said to have declined the offer to captain citing his disagreements with coach Chandika Hathurusinghe.
The news will come as a blow for Malinga, who had played a domestic match in Kandy, only 14 hours after playing an IPL match for his franchise Mumbai Indians in Mumbai, earlier this month.
Apart from Malinga and Mathews, Sri Lanka had also tried Dinesh Chandimal and Thisara Perera to lead the side at various stages over the past two years since the retirement of Kumar Sangakkara and Mahela Jayawardene in 2014.
The team's fortune dwindled as it slipped in ICC rankings in all formats since then.