2019 (Botafogo): In his final season with Botafogo, João Paulo made 36 league appearances in Brazil’s Série A, recording three goals as the club finished 15th in the table with 43 points (13-21-4). He also played four games in the Copa Sudamericana before Botafogo fell in the Round of 16, as well as a pair of matches in the Copa de Brasil. João Paulo appeared in seven matches in the Campeonato Carioca, recording one goal.
2018 (Botafogo): João Paulo made 15 appearances across all competitions, including 12 in league play as his club finished ninth in the table with 51 points (13-13-12). He appeared twice as a substitute in Botafogo’s title run in the Campeonato Carioca, as well as once in Copa de Brasil action.
2017 (Botafogo): In his first season with Botafogo, João Paulo made 55 appearances across all competitions, including 30 matches in league play with two goals as the club finished 10th in the table with 53 points (14-13-11). He appeared in 13 matches in Copa Libertadores play, as Botafogo advanced to the Quarterfinals before falling to Grêmio 1-0 on aggregate. João Paulo also made six substitute appearances in the club’s run to the Semifinals of the Copa de Brasil before falling to Flamento 1-0 on aggregate. In the Copeonato Carioca, a competition featuring all Brazilian clubs located in the state of Rio de Janeiro, João Paulo played in six matches as Botafogo finished fourth.
2016 (Santa Cruz): In his second and final season with Santa Cruz, João Paulo made 34 appearances and scored two goals as the club finished 19th in the table with 31 points (8-23-7) and was relegated following the campaign. He started all 10 of his appearances and scored two goals in the Campeonato Pernambucano as Santa Cruz won its second consecutive title in the competition among teams in the state of Pernambucano. He also appeared in 10 matches and helped Santa Cruz capture the 2016 Copa de Noreste championship. João Paulo played in all three of Botafogo’s matches in the Copa de Brasil and Copa Sudamericana.
2015 (Santa Cruz): João Paulo appeared in 34 games and scored one goal in Série B play in 2015, as Santa Cruz finished second with 67 points (20-11-7) and gained promotion following the season. He also started all 11 matches in Cameonato Pernambucano action as Santa Cruz captured the title in the competition among teams in the state of Pernambucano.
2014 (Goiás): In his lone season with Goiás, João Paulo made five league appearances in Série A and seven in Campeonato Goiano, helping the club to a second-place finish in the latter. He also made one appearance in Copa de Brasil action.
2013 (Atlético Goianiense): After being loaned from Internacional to Atlético Goianiense, João Paulo appeared in 35 games in Série B action and scored a career-high four goals in league play, in addition to three appearances in the Copa de Brasil. He also started all 10 of his appearances in the Campeonato Goiano as Atlético finished second.
2012 (Internacional): In his final full season with Internacional, João Paulo made 22 appearances across all competitions, including 14 in a title run in the Campeonato Gaucho. He also made four appearances with one start in Copa Libertadores action.
2011 (Internacional): João Paulo made 15 appearances across all competitions, including 14 in Série A play, his first career topflight action. He also appeared in one match in the Campeonato Gaucho as Internacional won the first of six consecutive titles. He was included on the bench in the second leg of the 2011 Recopa Sudoamericana (a matchup between the winners of the 2010 Copa Libertadores and 2011 Copa Sudoamericana), in which Internacional defeated Uruguayan side Independiente 4-3 on aggregate.
2010 (Internacional): In his first professional season, João Paulo made three appearances in Campeonato Gaucho action. João Paulo did not appear in the tournament, but Internacional won its second Copa Libertadores championship in 2010.
Signed by Sounders FC as a Designated Player on January 31, 2020.