Karunaratne skippered Sri Lanka in 30 tests over four years, winning 12, losing 12 and drawing six.
Spin-bowling all-rounder De Silva, who has played 51 tests, will begin his tenure with a one-off test against Afghanistan next month.
The change comes after SLC replaced Dasun Sanaka as white-ball captain on Sunday, putting Kusal Mendis and Wanindu Hasaranga in charge of the one-day and T20 squads respectively.
Sri Lanka finished ninth of 10 teams at the 50-overs World Cup in India late last year, which prompted SLC to install a new selection committee led by former opener Upul Tharanga.