William Carvalho wurde inAngola geboren und siedelte in der Kindheit mit seiner Familie nach Portugal über. Im Jahr 2005 wurde er in der Nachwuchsabteilung vonSporting Lissabon aufgenommen. Am 3. April 2011 debütierte er im Rahmen eines 1:1-Unentschiedens gegenVitória Guimarães kurz vor Spielende als Einwechselspieler in derPrimeira Liga. In der Hinrunde der Saison 2011/12 spielte Carvalho auf Leihbasis für den damaligen DrittligistenCD Fátima, im Januar 2012 führte ihn ein weiteres Leihgeschäft zum belgischen ErstligistenCercle Brügge, das auf eineinhalb Jahre befristet war. Bei den Belgiern etablierte sich Carvalho als Stammspieler. Am Ende derSpielzeit 2012/13 hielt er mit dem Verein knapp die Klasse.
ZurSaison 2013/14 kehrte Carvalho zu Sporting Lissabon zurück. Dort wurde er zum Stammspieler. Er kam in den folgenden fünf Jahren in 142 Ligaspielen zum Einsatz, in denen er zehn Treffer erzielte. In der Saison 2014/15 wurde erPokalsieger, in der Saison 2017/18Ligapokalsieger. Nachdem Sporting Lissabon im Mai 2018 die Qualifikation für dieChampions League verpasst hatte, wurden das Trainingsgelände und die Umkleidekabine des Klubs von gewalttätigen Anhängern gestürmt. Sein TeamkollegeBas Dost erlitt eine Kopfverletzung.[1] Daraufhin kündigte Carvalho – neben TrainerJorge Jesus,Bruno Fernandes,Gelson Martins,Rui Patrício,Daniel Podence und Bas Dost – seinen Vertrag zum Saisonende, da „gültige Motive“ für eine einseitige Vertragsauflösung vorlägen.[2]
Bei derEuropameisterschaft 2016 in Frankreich wurde er in dasAufgebot Portugals aufgenommen. Ab der zweiten Partie gegen Österreich gehörte er zur Startelf, musste allerdings im Halbfinale wegen seiner zweiten Gelben Karte pausieren. Das Team erreichte das Finale und gewann in der Verlängerung mit 1:0 gegen Gastgeber Frankreich. Damit war Portugal zum ersten Mal Europameister.
Im Anschluss nahm er als Stammspieler auch an derWeltmeisterschaft 2018 teil, bei der Portugal im Achtelfinale gegenUruguay ausschied. Im Sommer 2019 gewann er mit Portugal die Erstaustragung derUEFA Nations League. Bei derEuropameisterschaft 2021 bestritt er die ersten beiden Gruppenspiele; Portugal schied im Achtelfinale gegen Belgien aus.