Real Betis have completed the signing of Carvalho on a five-year contract.
Carvalho becomes the latest high-profile player to leave crisis club Sporting CP, who sacked coach Sinisa Mihajlovic after nine days in charge last month.
The Portugal midfielder, who started four games at the World Cup, helped his national side to become Euro 2016 champions.
Carvalho was reportedly close to joining West Ham last August, leading to a legal row between the Premier League side and Sporting.
But despite the 26-year-old since being linked with clubs including Inter and Everton, Betis confirmed his arrival on Friday.
Betis have also signed Japan international Takashi Inui, Sergio Canales, Pau Lopez and Joel Robles in preparation for the new La Liga campaign.
Since the end of the 2017-18 season, a number of players have left Sporting CP, including Portugal goalkeeper Rui Patricio who joined Wolves and Costa Rica international Bryan Ruiz who moved to Brazilian club Santos.
Defender Tobias Figueiredo traded the Portuguese top flight for Championship club Nottingham Forest, while winger Heldon is now playing in Saudi Arabia. Top scorer Bas Dost is currently without a club after cancelling his contract.