Born in
Ponta Delgada in the
Azores, João Pedro was a junior at hometown club
C.D. Santa Clara when he made his professional debut in
Segunda Liga on 23 November 2013, as a half-time
substitute for
Tiago Leonço in a 1–0 home loss against
S.C. Braga B. The following 25 January, he scored his only goal for the team in a 3–1 away defeat to
S.C. Farense. After two seasons with
Gil Vicente F.C. in the second division and as many with
C.D. Trofense in
the third, João Pedro signed a one-year contract with
Primeira Liga side
Vitória S.C. on 5 July 2019, with the option of two more. He made his debut on 1 August in a 4–0 home win (5–0 aggregate) over
AS Jeunesse Esch of Luxembourg in the
second qualifying round of the
UEFA Europa League, playing the last seven minutes in place of
Alexandre Guedes. Thirteen days later, again from the bench and at the
Estádio D. Afonso Henriques, he scored his first goal in a 6–0 demolition of Latvia's
FK Ventspils. João Pedro scored twice from ten league appearances in his first season in
Guimarães, starting with the only goal of a home win against former club Santa Clara on 18 January 2020, again as a substitute. On 1 July, he agreed to a new deal of two years with the option of as many more. However, on 20 August 2020, João Pedro joined
F.C. Paços de Ferreira on a three-year contract; Vitória retained a percentage of his economic rights, and a buyback option. In February 2022, he severed his ties and moved to
Bursaspor in the Turkish
TFF First League. João Pedro continued to play abroad subsequently, with
Panetolikos FC (
Super League Greece),
Hanoi FC (Vietnamese
V.League 1) and
Clube do Remo (
Campeonato Brasileiro Série B). With the latter side, he achieved promotion to the
Série A in
2025. ==International career==