The 20-year-old defensive midfielder became the youngest captain in Champions League history when he led Porto against Maccabi Tel Aviv in 2015.
“I’m very excited to play at this club,” says Neves, who has moved in a five-year deal.
“It is a very big club and I hope to help the team to win their goals. I have always wanted to play in England and we have a good team. I think we can do good things this season.
“I am very excited to start and to play in front of the fans – I love that.”
Neves came through Porto’s academy and made 67 senior appearances, scoring nine goals. He also played for the Portugal U21 side in June’s European Championships.
The fee beats the £13m paid to Benfica forwinger Helder Costa in January.