Born in Figueira de Castelo Rodrigo, Guarda District, João Pedro began his youth career at hometown club Ginásio Figueirense and completed it at S.C. Braga, where he made his debut with the reserve team in the third division in 2004.
He made his debut in the competition on 14 August, playing the full 90 minutes of a 0–1 home loss against FC Porto,[5] and scored his first goal for them 16 days later, consolation in a 1–3 defeat to Sporting CP also at the Estádio Municipal José Bento Pessoa.
[9] João Pedro played only one minute for the Minho Province side in 2013–14, his European debut in a 1–0 win at CS Pandurii Târgu Jiu in the play-offs of the UEFA Europa League on 22 August.
[13] He was an integral part of their team, missing only one game due to suspension for a red card in added time of a 2–1 home victory over local rivals Vitória S.C. in which he had scored the winner.
[14] João Pedro moved abroad for the first time on 23 June 2015, joining Cypriot First Division's Apollon Limassol FC on loan[15] and signing a permanent two-year contract in the following off-season.