After starting his professional career at Feirense, Silva transferred to Braga in 2013 and went on to make 127 appearances for them, scoring 26 goals winning the Taça de Portugal in 2016.
Born in Vila Franca de Xira, Silva grew up in Forte da Casa and started playing football with Povoense and Alverca, both in the Lisbon District.
Silva made his professional debut on 29 July 2012, playing the full 90 minutes in a 2–1 home win against Penafiel for the season's Taça da Liga.
[15] In his 14th game, on 22 January 2017, as a late substitute for Kostas Mitroglou, Silva scored his first goal for the team in a 4–0 win over Tondela at the Estádio da Luz.
[17] Silva scored his ninth league goal of 2018–19 on 2 March 2019, in a 2–1 away victory against Porto; Benfica leapfrogged the opposition and took first place with ten rounds remaining.
[21] On 4 August 2019, Silva scored the opening goal of a 5–0 win for Benfica in the 2019 Supertaça Cândido de Oliveira, against city rivals Sporting at the Estádio Algarve.
After scoring in both games against Azerbaijan in qualification,[35][36] Silva was part of the under-21 team that finished as runners-up at the 2015 UEFA European Championship in the Czech Republic.
[37] He returned to the full side for UEFA Euro 2016,[38] making his only appearance in the competition on 18 June by coming on as an 89th-minute substitute for Nani in a 0–0 draw with Austria at the Parc des Princes.