Dinesh Chandimal has been named skipper of Sri Lanka's Test team, while fellow batsman Upul Tharanga will lead the limited-overs squads after the move by Angelo Mathews to relinquish the captaincy across all formats.
Sri Lanka Cricket (SLC) president Thilanga Sumathipala said the board had accepted Mathews' resignation after a shock one-day series defeat to Zimbabwe, which the allrounder described as one of the lowest points of his career.
"As a captain, I can't turn a blind eye to the failure of the team in the past several months," Mathews said on Wednesday as the new captains were named, referring to the team's struggles since the 2015 World Cup.
"There is sufficient time for Sri Lanka Cricket to choose a captain and prepare the team for the 2019 World Cup in England.
"I wanted to take this decision some time back. But I had to stay because of the team. Now Upul and Dinesh are capable of carrying the duty."
Sri Lanka's new captains have little time to adjust as the side host Zimbabwe in a one-off Test starting on Friday, before welcoming India for a full series from July 26, featuring three Tests, five one-dayers and a Twenty20 match.
The 1996 world champions, ranked seventh in Tests and eighth in one-dayers, are also vying with the West Indies for the last available automatic place in the 2019 World Cup.
Chandimal said he looked forward to receiving guidance from Mathews as he began his tenure against Zimbabwe in Colombo before taking on the top-ranked team in Test cricket.
"I thank Angelo for leading the team and it is not an easy task," the 27-year-old said.
"We have lots of ups and down in the last two years, but we have a lot of talented young and senior players in the team.
"I am happy about being entrusted (with) this post. I am going to put my heart and soul to put the team in the right position."
Mathews marks his return to the Test side against Zimbabwe after missing the previous home series against Bangladesh through injury. Friday's match will be his first without the captaincy since 2013.