У дитинстві протягом семи років тренувався в академії «Порту», проте був відпущений у зв'язку зі слабкими фізичними даними[4]. Після цього протягом року (2014—2015) Жуан тренувався в скромному клубі «Падроенсе»[en], а потім пройшов перегляд у «Бенфіці»[5], разом з молодіжною командою ставав фіналістом Юнацької ліги УЄФА 2016/17.
17 вересня 2016 року Жуан Фелікс дебютував у другій команді в поєдинку проти «Фреамунде»[6]. 15 лютого 2017 року в тому ж сезоні забив свій перший м'яч у професійному футболі, вразивши ворота «Академіки ді Візеу» — команди з його рідного міста[7]. Всього в дебютному сезоні провів 13 матчів, забив 3 м'ячі. Сезон 2017/2018 також провів у другій команді, зіграв 17 матчів, в яких відзначився 4 рази.
З початку сезону 2018/19 тренувався з основною командою «Бенфіки». 18 серпня 2018 року дебютував у португальському чемпіонаті, вийшовши на заміну на 88-ій хвилині замість Франко Серві в поєдинку з «Боавіштою»[8]. 25 серпня 2018 року забив свій перший гол за «Бенфіку» в матчі чемпіонату проти «Спортінга», ставши наймолодшим автором гола в лісабонському дербі (на той момент йому було 18 років, 9 місяців і 16 днів)[9]. 11 квітня 2019 року в чвертьфінальному матчі Ліги Європи проти франкфуртського «Айнтрахта» забив три м'ячі, ставши наймолодшим автором гет-трику в історії турніру[10], перевершивши на 67 днів рекорд Марко П'яци у 2014 році[11]. Також у цьому матчі Фелікс став наймолодшим автором гола «Бенфіки» і всіх португальських клубів в Лізі Європи. На матч проти «Айнтрахта» футболіст вийшов у віці 19 років і 152 днів[12]. Крім цих двох досягнень, стало відомо, що Фелікс став рекордсменом ще одного — був побитий рекорд легендарного Еусебіу. У 1962 році португалець оформив гет-трик у ворота шведського «Норрчепінг» (5:1) в рамках 1/8 фіналу Кубка чемпіонів і став наймолодшим автором гет-трику серед португальців у єврокубках. На той момент Еусебіо було 20 років і 301 день. Жоау Фелікс більш ніж на рік побив рекорд Еусебіу[13].
«Атлетіко» (Мадрид)
3 червня 2019 року мадридський «Атлетіко» оголосив про трансфер Фелікса за 126 мільйонів євро[14].