The opening batsman replaces Kumar Sangakkara who resigned from the post two weeks ago after their World Cup defeat to India.
Tillakaratne Dilshan named new Sri Lanka captain
Sangakkara and his deputy Mahela Jayawardene both called time on their leadership duties after Sri Lanka's defeat by India in the World Cup final, with Sangakkara saying that the team needed a young captain at their peak in the build up to the next edition of the World Cup in 2015.
But at the age of 34, the appointment of Dilshan will appear to go against Sangakkara's reasons for resigning.
Dilshan has previously led Sri Lanka in several Twenty20 and one-day internationals (ODIs).
He has played 66 Test matches, scoring 3,990 runs at more than 42 runs per innings. In 203 ODIs, Dilshan has scored 5,456 runs and taken 62 wickets, bowling off-spin.
Having been an inconsistent middle-order batsman, Dilshan's performances improved after he was promoted to open the batting.
Sri Lanka Cricket said today that selectors have postponed naming a vice-captain because prospective candidates are nursing injuries and may not be available for next month's tour of England.
Anjelo Mathews, the all-rounder, is in the running for the role as vice-captain.