The Ducks announced the deal with the restricted free agent on Friday.
Silfverberg had 10 goals and 13 assists in 52 games during his first season with the Ducks, who acquired the two-way forward from Ottawa last summer in a trade for Bobby Ryan.
After scoring four goals in his first four games with his new team, Silfverberg missed 24 games early in the season with a broken right hand. He added two goals in 13 postseason games for the Pacific Division champions.
The 23-year-old Silfverberg also won a silver medal with Sweden at the Sochi Olympics last February.