Formado nas categorias de base do Sport, foi promovido para o time principal em 2013, mas apenas em 2014 começou a ter oportunidades, quando o time foi campeão da Copa do Nordeste. Em 2015, assumiu a camisa 9 do time pernambucano e foi decisivo em várias partidas, com gols e assistências. No meio do ano, acertou sua transferência para o Hoffenheim, da Alemanha. Em junho de 2016, foi emprestado ao Rapid Vienna, da Áustria, onde foi titular absoluto. Em seu terceiro jogo pela equipe austríaca, um amistoso contra o Chelsea, da Inglaterra, que marcava a inauguração do novo estádio do Rapid, marcou o gol que abriu o placar do jogo. Pelo bom desempenho, retornou ao clube alemão na temporada 2018/2019. Em julho de 2019, foi vendido para o Newcastle, na maior transação da história do clube alemão e a compra mais cara do clube inglês. Em 2012, foi convocado para a seleção brasileira sub-17 e marcou dois gols em quatro jogos.