Fernandes komt uit de jeugdacademie van Boavista, de tweede club uit Porto. Op 27 augustus 2012 tekende hij een profcontract bij het Italiaanse Novara. Op 3 november 2012 maakte hij zijn profdebuut, tegen Cittadella. Hij speelde eenentwintig competitiewedstrijden in de Serie B, waarin hij vier doelpunten maakte en twee assists gaf. Novara eindigde het seizoen op een vijfde plaats. Op 20 juni 2013 maakte Udinese de komst van Bruno Fernandes bekend. Udinese legde een bedrag van 2,5 miljoen euro op tafel voor de centrale middenvelder. In de zomer van 2016 werd Fernandes voor de duur van een seizoen op huurbasis overgenomen door Sampdoria. In het huurcontract werd een verplichte optie tot koop opgenomen, voor circa 6 miljoen euro.[1] Bruno Fernandes verruilde Udinese zodoende op 1 juli 2017 voor Sampdoria. Dat verkocht hem een jaar later niettemin door aan Sporting Portugal. Hier groeide hij uit tot aanvoerder. Hij won met Sporting de eerste prijzen in zijn profcarrière; een keer de Taça de Portugal en twee keer de Taça de Liga. Na tweeënhalf seizoen bij de Portugese club tekende Fernandes in januari 2020 een contract tot medio 2025 bij Manchester United.[2] Dat betaalde 55 miljoen euro voor hem, een som die door bonussen zou kunnen oplopen tot 80 miljoen euro.[3] Trainer Ole Gunnar Solskjær nam hem ook bij de Engelsen meteen op in het basiselftal.
Fernandes speelde in diverse Portugese jeugdelftallen, waaronder Portugal onder 19, Portugal onder 20 en Portugal onder 21. Hij vertegenwoordigde Portugal ook op de Olympische Zomerspelen van 2016. Hij nam met het Portugees voetbalelftal deel aan het WK 2018. Fernandes debuteerde op 10 november 2017 onder bondscoach Fernando Santos in het Portugees voetbalelftal, in een met 3–0 gewonnen oefeninterland tegen Saoedi-Arabië. Zijn eerste interlanddoelpunt volgde op 7 juni 2018. Hij kopte toen de 2–0 binnen in een met 3–0 gewonnen oefeninterland thuis tegen Algerije. Santos nam Fernandes ook op in zijn selectie voor het WK 2018. Hierop kwam hij twee keer in actie, in de eerste twee groepswedstrijden. Fernandes won op 9 juni 2019 de finale van de UEFA Nations League 2018/19 met Portugal. Hierin speelde hij 81 minuten mee. Hij werd op 21 mei 2024 door Roberto Martínez opgenomen in de Portugese selectie voor het EK 2024 in Duitsland.[4]