Benfica
Cancelo föddes i Barreiro, som är en stad i Setúbal-distriktet. Han gick med i SL Benficas ungdomsakademi 2007.
Han debuterade för Benfica den 28 juli 2012. Matchen var en vänskapsmatch mot Gil Vicente. Trots att han var registrerad i reservlaget talades det om honom som en möjlig ersättare till Maxi Pereira. Han gjorde sin professionella debut den 25 januari 2014. Matchen var en match i Taça da Liga 3:e omgången mot Gil Vicente, där han kom in som ersättare för André Almeida i den 82:a minuten. Hans enda ligamatch för Benfica var en 2-1-förlust mot FC Porto.
Valencia
Cancelo anslöt sig till Valencia den 20 augusti 2014 på ett ettårigt lån, med en köpoption för 15 miljoner euro. Han gjorde sin La Liga-debut den 25 september 2014 i en 3-0-seger mot Córdoba. Han utsågs till matchens man den 12 april 2015 efter en 3-0-seger mot Levante. Han gjorde endast 13 framträdanden under säsongen 2014-15, då han främst var backup för Antonio Barragán. Den 25 maj kom Cancelo överens om ett permanent kontrakt med Valencia fram till den 30 juni 2021. Överföringsavgiften uppgick till 15 miljoner euro.
Den 16 september 2015 gjorde Cancelo sin debut i UEFA Champions League. Matchen var en 3-2 förlust mot Zenit Sankt Petersburg, där han gjorde 1 mål. Målet gjorde honom till den femte yngsta målskytten i Champions League, 21 år och 107 dagar gammal. Den 20 april 2016 skulle han göra sitt första ligamål för Valenica. Matchen var en 4-0-seger mot Eibar.
Utlånad till Inter Milan
Den 22 augusti 2017 anslöt Cancelo till Inter Milan på ett ettårigt lån fram till den 30 juni 2018, med en option på att göra övergången permanent. I samband med affären anslöt sig även Geoffrey Kondogbia till Valencia på lån. Han gjorde sin debut i Serie A den 26 augusti 2017 i en 3-1-seger mot AS Roma. Han skulle drabbas av en knäbandsskada i slutet av augusti 2017, när han var i landslagsuppdrag. Hans första match tillbaka från skadan var en 3-2-seger den 15 oktober 2018 mot AC Milan. 2017-18 var han en del av årets lag i Serie A Efter säsongen beslutade Inter Milan att inte göra lånet permanent.
Juventus
Den 27 juni 2018 skrev Juventus på ett femårskontrakt med João Cancelo för 40,4 miljoner euro. Han debuterade i Juventus den 18 augusti i en 3-2-seger mot ChievoVerona. Han vann sin första trofé med Juventus den 16 januari 2019 när Juventus slog AC Milan med 1-0 i Supercoppa Italiana 2018. Han skulle spela i den Scudetto-vinnande matchen, där Juventus vann med 2-1 mot Fiorentina.
Manchester City
Den 7 augusti 2019 anslöt Cancelo till de engelska Premier League-mästarna Manchester City. Avtalet var ett sexårigt avtal värt 27,4 miljoner pund och Danilo anslöt sig till Juventus som en del av avtalet, vilket motsvarar 60 miljoner pund. Detta gjorde João Cancelo till den dyraste högerbacken någonsin. Han debuterade i Premier League den 25 augusti 2019 i en 3-1-seger mot Bournemouth, där han kom in som ersättare för Kyle Walker. Han gjorde sitt första mål för Manchester City den 18 december 2019 i en 3-1-seger mot Oxford United i EFL Cup-kvartsfinalen.
Han gjorde sin första start i säsongen 2020-21 den 17 oktober 2020 på grund av skada.Matchen var en 1-0-seger mot Arsenal. Den 3 november 2020 gjorde Cancelo sitt första Champions League-mål för Manchester City i en 3-0-seger mot det grekiska laget Olympiakos. Hans första ligamål för säsongen skedde den 26 januari 2021. I den matchen gjorde Cancelo det andra målet i en 5-0-seger mot West Bromwich Albion. Han blev utsedd till årets PFA-lag 2020-21.
Den 17 oktober 2021 gjorde Cancelo sitt första mål för säsongen för Manchester City. Målet gjordes i en 6-3-seger mot RB Leipzig i gruppspelet i UEFA Champions League. Den 3 november stod Cancelo för ett hattrick av assist i en 4-1-seger mot Club Brugge i Champions League-gruppspelet.