The 21-year-old becomes Milan's fourth coup of the transfer window, following the arrivals of Mateo Musacchio, Ricardo Rodriguez and Franck Kessie.
Silva moves for much less than his €60m release fee due to Porto's recent fine from UEFA for failing to comply with Financial Fair Play obligations, with agent Jorge Mendes negotiating a transfer of around €38m.
The striker was in excellent form in the Primeira Liga last season, scoring 16 goals in 32 games for Porto, as well as four times in eight Champions League appearances.
Silva revealed his delight after completing the move, following a successful medical exam at Milan's La Madonnina base.
“This is a wonderful feeling,” he told the club’s official website. “I’m really happy about this opportunity.
“I know the history of AC Milan and I know how big club it is. My dream came true that I can be here now, I will give it all I’ve got.”
This week, both Mendes and Portugal team-mate Cristiano Ronaldo have praised the young striker, with Mendes claiming Silva can be the best player in the world.
“He’s a young lad with so much quality,” Mendes told Sky Sport Italia. "He’ll certainly be the best [player] in Italy in the next few years. He can become one of the best strikers in the world, he has everything to be so."
Ronaldo tipped Silva to be his heir with Portugal, who has no fears about his nation's future when he quits international football.
"When I retire, Portugal will be in good hands because they have already found a great striker: Andre Silva," Ronaldo told Gazzetta dello Sport.