Жуан є вихованцем клубу «Баррейренсі» з його рідного міста. У 2008 році він перейшов в академію столичної «Бенфіки». З 2012 по 2014 рік Канселу виступав за дублюючий склад клубу у Сегунді, другому за рівнем дивізіоні Португалії, взявши участь у 51 матчі. За першу команду «орлів» Жуан провів лише одну зустріч португальської першості — 10 травня 2014 року проти «Порту»[1], а також один матч на Кубок португальської ліги[2]. Обидва ці турніри «Бенфіка» виграла за підсумками того сезону.
20 серпня2014 року на правах оренди до кінця сезону перейшов у іспанську «Валенсію»[3]. Дебютував у новій команді 25 вересня2014 року в матчі Ла Ліги проти «Кордови» (3:0)[4]. Всього за час оренди зіграв у 10 матчах чемпіонату і трьох іграх національного кубку.
25 травня2015 року, після завершення терміну оренди, «Валенсія» викупила контракт португальця[5], уклавши з ним нову угоду до червня 2021 року[6]. Встиг відіграти за валенсійський клуб 74 матчів в національному чемпіонаті.
В сезоні 2017/18 провів рік на правах оренди в міланському «Інтернаціонале». Після чого перейшов майже за 40 мільйонів євро в «Ювентус».