Natural de Vitória, João Gomes Júnior demorou para estourar na natação competitiva. No início da carreira chegou a trabalhar como garçom e salva-vidas na praia para conseguir manter o treinamento e o sonho de tornar-se um atleta de alto rendimento. Em 2008 começou a se destacar e integrar o talentoso grupo de peitistas brasileiros que já contava com Felipe França, Henrique Barbosa, Felipe Lima e Eduardo Fischer.
No ano seguinte chegou pela primeira vez a seleção principal disputando o Campeonato Mundial de Roma onde foi finalista nos 50m peito. Continuou duelando contra França, Barbosa e Lima por um lugar na seleção olímpica, mas ficou fora do time olímpico de Londres-2012. No Mundial de piscina curta de Doha-2014 foi flagrado com a substância hidroclorotiazida e teve suas medalhas e resultados anulados, além de suspenso por seis meses.
Após voltar da punição por doping finalmente conseguiu se classificar para uma Olimpíada. No Rio-2016 conquistou o melhor desempenho individual do Brasil na competição: um quinto lugar nos 100m peito e foi sexto colocado com o revezamento o 4x100m medley. No Mundial de Budapeste conquistou o resultado mais expressivo da carreira ao sagrar-se vice-campeão mundial nos 50m peito.
Sua boa fase nas piscinas continuou em 2018, quando firmou-se como o principal nadador de peito do Brasil. No Campeonato Pan-Pacífico em Tóquio, conquistou a medalha de bronze nos 100m peito. No fim daquela temporada ainda foi finalista nos 50m peito no Campeonato Mundial de piscina curta de Hangzhou.
No Mundial de Gwangju-2019 protagonizou ao lado de Felipe Lima o primeiro pódio de dois brasileiros numa mesma prova em Campeonatos Mundiais de Esportes Aquáticos, ganhando o bronze e seu amigo a prata. Hoje luta principalmente contra Lima pela vaga no revezamento 4x100m medley, já classificado aos Jogos Olímpicos de Tóquio e potencial finalista.
Em 2019 aos 33 anos realizou um de seus grandes sonhos: disputar uma edição dos Jogos Pan-Americanos. Em Lima, não só disputou o primeiro Pan como conquistou a medalha de ouro nos 100m peito e também com o revezamento 4x100m medley misto, após a desclassificação da equipe americana, e a medalha prata com o 4x100m medley masculino.