The 18-year-old broke into the first team at Porto this season and is regarded as one of the highest-rated teenagers in European football.
But he played just 182 minutes of Primeira Liga football in the 2019/20 season, but Wolves confirmed that they have been tracking his progress for some time.
Club chairman Jeff Shi said: "Our recruitment team have been watching Fabio since he played for Portugal Under-16s.
"They feel he has always been the best number nine coming through his age group anywhere in Europe.
"Fabio is a young player who shows not only incredible technical ability, but also his game intelligence for a player of his age is top class."
Silva made his name featuring in the Uefa Youth League and made his full debut for Porto at the age of 17.
He will become Wolves' record signing, eclipsing the €33m spent on Mexican striker Raul Jimenez.