Ahead of the 2019–20 season, Esteves was given the number 2 shirt for the first team, inherited from the released Maxi Pereira.[6] He made his senior debut on 18 August 2019 for FC Porto B, starting and playing 80 minutes in a 1–1 home draw against Varzim S.C. on the second week of the season.[7]
Esteves had his initial call-up to a first-team matchday squad for the Taça da Liga opening group match against C.D. Santa Clara on 25 September 2019, remaining unused in the 1–0 home win.[8] On 5 December he made his debut in the same competition, playing the last 15 minutes of a 3–0 win at Casa Pia A.C. in place of Wilson Manafá.[9] He made his Primeira Liga bow on 16 June 2020, playing the first hour of a goalless draw at bottom club C.D. Aves before being substituted for Moussa Marega.[10]
On 5 October 2020, Esteves was loaned to EFL Championship club Reading for the season.[11] He made his debut fifteen days later in a 1–0 home win over Wycombe Wanderers, as a 57th-minute substitute for Tom Holmes.[12] He scored his only goal for the Royals in a 2–2 draw with Swansea City on 25 April 2021.[13]
On 2 August 2022, Esteves joined Pisa S.C. in the Italian Serie B on loan with an option to buy and a conditional obligation to buy.[14] He made his debut 11 days later, starting as the season began with a 4–3 loss at A.S. Cittadella.[15]
On 3 August 2023, Pisa announced the permanent signing of Esteves on a three-year contract, acquiring 70% of the player's economic rights for a reported €1 million fee.[16][17]
International career
Esteves first represented Portugal at under-15 level in April 2017. On 5 September 2019, he made his debut for the under-21 team, replacing Thierry Correia at half time in a 5–0 home win over Gibraltar in Alverca in a Euro 2021qualifier. At 17 years, 5 months and 3 days he became the youngest player for the team in the 21st century, beating fellow Porto graduate Rúben Neves by 25 days.[18]
Personal life
Esteves' younger brother Gonçalo, also a defender, spent a decade at Porto before joining Sporting CP in 2021.[19]