Sri Lanka on Tuesday announced Angelo Mathews would return as skipper for limited-overs cricket ahead of the 2019 World Cup, just six months after the all-rounder stepped down from the post.
The move comes as a surprise after Mathews, 30, quit last July as captain in all three formats of the game following repeated bouts of injury.
Sri Lanka Cricket president Thilanga Sumathipala said the board asked Mathews to reconsider following close consultations with new coach Chandika Hathurusingha and team selectors.
Mathews said he took a few days to decide before accepting the captaincy of Sri Lanka's one-day and Twenty20 teams.
"It is a national duty, and we need stability moving into a World Cup in 18 months," said Mathews.
Dinesh Chandimal remains Sri Lanka's Test captain.
Sumathipala said Mathews was expected to prepare the squad ahead of the World Cup in England and Wales in 2019.
The returning captain will face his first test this month when Sri Lanka travel to Bangladesh for a tri-nation ODI tournament.
The all-rounder bore the brunt of criticism after Sri Lanka's embarrassing loss to lowly-ranked Zimbabwe in a home Test series last year.
Mathews at the time described the shock defeat to Zimbabwe as the lowest point in his career and a "hard pill to swallow".
Squad: Angelo Mathews (captain), Upul Tharanga, Danushka Gunathilaka, Kusal Mendis, Dinesh Chandimal, Kusal Janith Perera, Thisara Perera, Asela Gunaratne, Niroshan Dickwella, Suranga Lakmal, Nuwan Pradeep, Dushmantha Chameera, Shehan Madushanka, Akila Dananjaya, Lakshan Sandakan and Wanidu Hasaranga.