Жуан является воспитанником клуба «Баррейренсе» из его родного города. В 2008 году он перешёл в «Бенфику». С 2012 по 2014 год игрок выступал за дублирующий состав клуба. За первую команду «орлов» Жуан провёл только одну встречу португальского первенства —10 мая 2014 года против «Порту»[3]. Сезон 2014/15 футболист провёл на правах аренды в испанской «Валенсии» и отыграл там десять встреч. В следующем сезоне «летучие мыши» выкупили игрока.
23 августа 2017 года Канселу отправился в годичную аренду в итальянский «Интернационале». В соглашении между клубами была предусмотрена возможность выкупа контракта футболиста. Канселу назвал переход в миланский клуб «историческим шагом в своей карьере»[4].
27 июня 2018 года права на Канселу за 40 миллионов евро выкупил «Ювентус»[5], с которым игрок подписал пятилетний контракт.
7 августа 2019 года перешёл в «Манчестер Сити». Футболист подписал контракт с «горожанами» на пять лет. Сумма сделки составила 65 млн евро.
31 января 2023 года ушёл в аренду в мюнхенскую «Баварию» до конца сезона 2022/23[6].
1 сентября 2023 года было объявлено о переходе Канселу в «Барселону» на правах аренды до конца сезона[7].
27 августа 2024 года стал игроком саудовского клуба «Аль-Хиляль»[8].