Рођен у месташцу Маја у околини Порта, Фернандес је озбиљније почео да се бави фудбалом у јуниорском тиму Боависте, одакле је са непуних осамнаест година пешао у италијанску Новару. Неколико недеља касније дебитује за први тим у утакмици Серије Б, а током прве професионалне сезоне у каријери на 23 одигране утакмице постигао је 4 гола.
Годину дана касније прелази у екипу Удинезеа у чијем дресу игра наредне три сезоне у Серији А. У најјачој италијанској лиги дебитовао је 3. новембра 2013. у утакмици против Интер Милана, док је први погодак постигао 7. децембра исте године у утакмици против Наполија. Потом је сезону 2016/17. одиграо у дресу Сампдорије из Ђенове, а затим се у лето 2017. враћа у Португалију где потписује петогодишњи уговор са Спортингом из Лисабона вредан око 9 милиона евра.
У септембру 2017. одиграо је прву утакмици у УЕФА Лига шампиона против Олимпијакоса. Спортинг је сезону 2017/18. окончао на трећем месту првенствене лествице и тако изгубио право на наступ у Лиги шампиона наредне сезоне. Незадовољни навијачи су упали на један од тренинга екипе, те напали и повредили неколико играча и тренера Спортинга, међу њима и Фернандеса. Због тог инцидента је Бруно Фернандес одлучио да раскине уговор са тимом, баш као и многи првотимци који су били жртве тог напада.
Репрезентативна каријера
Прво значајније такмичење на ком је наступио у репрезентативном дресу биле су Олимпијске игре 2016. у Рио де Жанеиру где је одиграо све утакмице за Португалце који су на крају такмичење завршили у четвртфиналу.
У дресу сениорске репрезентације Португалије дебитовао је 10. новембра 2017. у пријатељској утакмици са Саудијском Арабијом, у којој је одиграо последња 34 минута сусрета након што је заменио Мануела Фернандеса. Потом га је селектор Фернандо Сантос уврстио на списак репрезентативаца за Светско првенство 2018. у Русији, а у последњој припремној утакмици уочи првенства играној против Алжира 7. јуна постигао је и свој први гол у репрезентативном дресу.
У Русији је играо на прве две утакмице групне фазе, против Шпаније где је добио и жути картон, и Марока пет дана касније.