Perera suffered a hamstring injury in Thursday's stunning seven-wicket victory over defending champions India at the Oval.
"The Event Technical Committee of the ICC Champions Trophy 2017 has approved Dhananjaya de Silva as a replacement player for Kusal Perera in the Sri Lanka squad for the tournament," the ICC said.
The 25-year-old De Silva, a top-order batsman and off-spinner, has played 16 ODIs, scoring 334 runs and taking four wickets.
Sri Lanka play Pakistan in their last Group B game in Cardiff on Monday needing victory to reach the semi-finals.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
All four teams in the group are level on two points from two matches.
(Reporting by Tom Hayward, editing by Ed Osmond)
