Начал играть в теннис в семь лет. В теннис его привел отец Арманду. Его отец — судья, мать Аделаида — банкир. Имеет брата Луиша, который является студентом.
В 15 лет для того, чтобы стать профессиональным теннисистом переехал в Барселону. Спортивное прозвище — «Конкистадор» (порт.Conquistador). Входил в топ-30 как в одиночном, так и парном рейтинге.
Спортивная карьера
Начало карьеры (первый титул в Туре)
В феврале 2008 года Соуза выиграл первый «фьючерс» в парном разряде. В апреле того же года дебютирует в ATP-туре, сыграв на турнире в Открытого чемпионата Эшториле. Туда он попал пройдя квалификационный отбор. В матче первого раунда он обыграл Оливера Мараха — 6-1, 6-3, а во втором проиграл своему соотечественнику Фредерико Жилу — 6-7(5), 2-6. В июле того же года Соуза впервые сыграл за сборную Португалии в отборочных раундах Кубка Дэвиса. В июне 2009 года португалец выигрывает первый турнир серии «фьючерс» в одиночном разряде. В мае 2010 года ему удалось выиграть три «фьючерса». Летом 2010 года Жуан выиграл парный турнир серии «челленджер» в Тампере.
К маю 2011 года Соуза имеет в активе шесть побед на «фьючерсах» в одиночном разряде. В июне 2011 года выиграл первый одиночный «челленджер» в немецком Фюрте. В октябре 2011 года выиграл ещё один «фьючерс» в Испании. В апреле 2012 года Жуан выигрывает «челленджер» в Мерсине и смог выйти во второй раунд турнира АТП в Барселоне. Затем на турнире в Эшториле он первый раз выходит в четвертьфинал соревнований АТП-тура. В мае на Открытом чемпионате Франции дебютирует в основных соревнованиях турниров серии Большого шлема, попав туда через квалификацию. В июле 2012 года выиграл «челленджер» в Тампере. Под конец сезона Соуза впервые в рейтинге поднимается в первую сотню, закончив 2012 год на 99-м месте.
Сезон 2013 года начал с участия в турнирах в Ченнае и Сиднее. На Открытом чемпионате Австралии дошёл до второго раунда, где встретился с № 3 Энди Марреем и проиграл — 2-6, 2-6, 4-6. На Открытом чемпионате Франции он также добрался до второго раунда. В июне он выиграл «челленджер» в Фюрте. В июле ему удалось выиграть «челленджер» в своём родном городе Гимарайнше. Довольно хорошо Соузе удается выступить на Открытом чемпионате США, где он переиграл Григора Димитрова — 3-6, 6-3, 6-4, 5-7, 6-2 и Яркко Ниеминена 1-6, 6-3, 3-6, 6-3, 6-4. В третьем раунде он встретился с № 1 мирового рейтинга Новаком Джоковичем и легко проиграл — 0-6, 2-6, 2-6.
Первый раз до четвертьфинала в 2014 году Соуза добрался на турнире в Рио-де-Жанейро и сыграл там против первой ракетки мира Рафаэля Надаля. В июне он вышел в полуфинал турнира на траве в Хертогенбосе, начав свой путь с квалификации. В июле 25-летний португальский теннисист смог сыграть в финале турнира в Бостаде. В титульном матче он уступил теннисисту из Уругвая Пабло Куэвасу со счётом 2-6, 1-6. Следующего финала Соуза достиг в сентябре в Меце. В полуфинале того турнира он смог обыграть № 18 в мире Гаэля Монфиса (7-6(6), 6-2). В главном матче турнира Жуан проиграл бельгийцу Давиду Гоффену — 4-6, 3-6.
На Открытом чемпионате Австралии 2015 года Соуза впервые для себя оказался в третьем раунде, где не смог преодолеть барьер в лице Энди Маррея. В феврале на зальном турнире в Монпелье он прошёл в полуфинал. Лучшего результата в грунтовой части сезона он добивается на турнире в Женеве в мае. Соуза смог выйти в финал, где уступил титул бразильцу Томасу Беллуччи (6-7(4), 4-6). На Ролан Гаррос во втором раунде он вновь сыграл против Энди Маррея и проиграл ему. В июле Жуан сыграл ещё в одном финале на турнире в Умаге. Португалец проиграл свой четвёртый подряд финал. На этот раз поражение Соузе нанёс Доминик Тим (4-6, 1-6). На другом грунтовом турнире в Гштаде он сыграл в 1/4 финала. На Открытом чемпионате США в соревнованиях мужских пар Соуза смог дойти до четвертьфинала в альянсе с Леонардо Майером. В сентябре Соуза смог достичь ещё одного финала. На турнире в Санкт-Петербурге он смог обыграть в полуфинале сильного соперника Доминика Тима (№ 21 в мире), а в решающем матче проиграл представителю Топ-10 Милошу Раоничу — 3-6, 6-3, 3-6. В концовке сезона Соуза наконец-то смог преодолеть неудачную традицию проигрывать в финале. Он завоевал второй в карьере титул АТП, победив на турнире в Валенсии. В борьбе за главный приз он сломил сопротивление испанца Роберто Баутисты Агута — 3-6, 6-3, 6-4. Итоговым местом в рейтинге в 2015 году для Соузы стала 33-я строчка.
На Австралийском чемпионате 2016 года Соуза, как и год назад, оказался в третьем раунде, где жребий вновь свёл его с Энди Марреем, которому португалец проиграл в четырёх сетах. В мае Жуан на турнире серии Мастерс в Мадриде смог выйти в четвертьфинал. На турнире в Ницце он вышел в стадию полуфинала. На Уимблдонском турнире впервые сыграл в третьем раунде. В июле Соуза добрался до 1/4 финала на грунтовых турнирах в Бостаде и Умаге. В августе он выступил на Олимпиаде, которая проводилась в Рио-де-Жанейро. В одиночном разряде португалец во втором раунде проиграл Хуану Мартину дель Потро. Такой же результат его ждал и в парном разряде, где он выступил совместно с Гаштаном Элиашом. На Открытом чемпионате США Соуза обыграл № 18 в мире Фелисиано Лопеса, а в третьем проиграл Григору Димитрову. В сентябре на турнире в Санкт-Петербурге он вышел в четвертьфинал, а в октябре также выступил в Токио.
2017 год Соуза начал с удачного выступления в Окленде, где он вышел в финал. В титульном матче он проиграл Джека Соку со счётом 3-6, 7-5, 3-6. В феврале он вышел в четвертьфинал в Буэнос-Айресе. а в начале марта в полуфинал в Сан-Паулу. Следующий раз в четвертьфинале Соуза сыграл в июле на грунте в Гштаде. В начале августа он вышел в финал турнира в Кицбюэле. В этом матче Жуан не смог обыграть Филиппа Кольшрайбера — 3-6, 4-6. Концовку сезон провёл без сильных результатов и один раз в октябре смог дойти до четвертьфинала на турнире в Антверпене. По итогам сезона он финишировал в рейтинге за пределами топ-50.
2018—2024 (два титула в Туре, кризис в игре и завершение карьеры)
В марте 2018 года на Мастерсе в Индиан-Уэлсе Соуза смог во втором раунде обыграть № 5 в мире на тот момент Александра Зверева (7:5, 5:7, 6:4), однако развить успех не смог и проиграл в третьем раунде Милошу Раоничу. На следующем Мастерсе в Майами Соуза также во втором раунде обыграл теннисиста из топ-10. На этот раз бельгийца Давида Гоффена (6:0, 6:1). В целом он добрался до четвёртого раунда, в котором проиграл корейцу Чон Хёну. В апреле дошёл до полуфинала турнира на грунте в Марракеше (Марокко), где уступил испанцу Пабло Андухару. В начале мая Жуан Соуза стал первым португальцем, победившим на домашнем турнире в Эшториле, который проводится с 1990 года. В финале он обыграл американца Фрэнсиса Тиафо (6:4, 6:4). Титул позволил Соузе вернуться в топ-50. Соуза на Мастерсе в Риме в парном разряде в команде с Пабло Карреньо заменил в сетке, снявшихся из-за травмы Боба и Майка Брайанов, и неожиданно их пара смогла доиграть до финала. Далее у португальца результаты упали и до конца августа он лишь раз сыграл в четвертьфинале — на травяном турнире в Анталье. На Открытом чемпионате США он стал первым португальским игроком, вышедшим в четвёртый раунд на Большом шлеме в одиночном разряде. В сентябре Соуза дошёл до полуфинала турнира в Чэнду (Китай), где проиграл австралийцу Бернарду Томичу со счётом 4:6, 4:6. По итогам сезона он занял 44-е место.
На Открытом чемпионате Австралии 2019 года Соуза доиграл до третьего раунда, а в парном разряде с аргентинцем Леонардо Майером смог выйти в полуфинал. В мае на Мастерсе в Мадриде в мужском парном разряде вместе с аргентинцем Гидо Пельей, где они дошли до полуфинала, но проиграли паре Доминик Тим и Диего Шварцман. В июле Жуан на Уимблдонском турнире впервые доиграл до четвёртого раунда, где уступил в трёх сетах испанцу Рафаэлю Надалю. Затем он сыграл на двух грунтовых турнирах и в Бостаде вышел в четвертьфинал, а затем в полуфинал в Гштаде. На Открытом чемпионате США он проиграл в первом раунде Джордану Томпсону, а в парном разряде вместе с Леонардо Майером дошёл до четвертьфинала. В сентябре на турнире в Санкт-Петербурге во втором раунде удалось обыграть № 9 в мире на тот момент Карена Хачанова. Затем Соуза выиграл у Михаила Кукушкину и вышел в полуфинал, в котором проиграл Борна Чоричу. Затем он сыграл на турнире в Чэнду и вышел в 1/4 финала.
Начиная с конца 2019 года у Соузы произошёл кризис в игре. Он вылетал в первых раундах турниров и с октября 2019 года по август 2021 года выиграл всего три матча в основных соревнованиях одиночного разряда (без учёта квалификаций). К марту 2021 года он покинул первую сотню рейтинга. Спад в игре пришёлся и на Олимпийские игры в Токио, где португалец выбыл в первом же раунде одиночных и парных соревнований. Низкий рейтинг не позволил попадать на основные соревнования ATP и он стал играть на турнирах младшей серии «челленджер», где осенью 2021 года дважды доигрывал до финала.
В 2022 году в игре Соузы появились позитивные всплески. На Открытый чемпионат Австралии он попал в качестве лаки-лузера, однако проиграл в первом же раунде Яннику Синнеру. В начале февраля ему удалось выиграть четвёртый титул в карьере в Туре. Произошло это на турнире в Пуне, где собралась не слишком сильная сетка. Соперники Соузы на пути к чемпионству не входили в топ-60, а в решающем матче он переиграл № 87 в мире Эмиля Руусувуори, который сыграл дебютный финал в Туре. Победа в Пуне позволила Соузе вернуть себе место в топ-100. В мае он смог выйти в финал турнира в Женеве, но уступил в нём в трёх сетах Касперу Рууду. На Открытом чемпионате США в парном разряде он смог доиграть до четвертьфинала совместно с Марсело Демолинером.
В 2023 году Соуза сильно стал терять в рейтинге и выступал чаще на «челленджерах», где один раз смог выйти в финал в Порту. В 2024 году объявил о завершении карьеры, сыграв в апреле последний матч на домашнем турнире в Кашкайше[2].