Mihai Macovei découvre le rugby à l'âge de 12 ans, au sein du club de sa ville natale, Gura Humorului. Il y fait tout son parcours junior, avant de signer son premier contrat professionnel avec le CSM Baia Mare[4]. Avec Baia Mare, il va éclore au plus haut niveau. Il est rapidement intégré au sein de la franchise de Bucarest Rugby qui évolue en challenge européen, et y disputera 28 matchs[1]. En 2006, il découvre la sélection nationale lors d'un match face à l'Ukraine[2]. Pendant ce temps en club, il remporte trois titres nationaux et une coupe[4].
En 2012, après une finale perdue face au RCM Timișoara, il part en France et rejoint le Sporting nazairien rugby qui évolue en Fédérale 1. Il signe un contrat de deux en faveur du club, où il est présent « pour progresser »[6]. Après deux saisons au club, il passe à l'échelon supérieur en rejoignant le RC Massy, qui évolue en Pro D2[7].
Il ne reste néanmoins qu'une saison à Massy, s'engageant en faveur de Colomiers rugby pour trois ans, à partir de l'intersaison 2015[8]. A la fin de l'été, il participe à sa deuxième coupe du monde, où il est capitaine de la sélection roumaine[9]. Il y dispute trois matchs, et inscrit un doublé face au Canada[2].
A Colomiers, il s'impose rapidement comme un élément clé de l'équipe[10], et atteint avec son club les demi-finales de Pro D2 dès sa première année. Mais il se blesse au ligament croisé en fin de championnat, et doit être absent pendant huit mois. Il revient au jeu au début de l'année 2017[11]. Dans la foulée, il participe avec la sélection roumaine au championnat d'Europe, qu'il remporte[2]. Fin 2017, à six mois de l'échéance de son contrat, il signe une prolongation pour deux saisons supplémentaires[12], puis prolonge de deux saisons supplémentaires au terme de son contrat, ce qui le lie avec Colomiers jusqu'à la fin de la saison 2021-2022[13].
Il signe au RCBA Racing Club Bassin Arcachon en Juillet 2022 pour 2 ans.
Initialement convoqué pour disputer la Coupe du monde 2023, il se blesse et est remplacé par André Gorin. Durant le tournoi, il annonce sa retraite internationale lors d'une sortie médiatique relevant des tensions avec le staff en place au sein de la sélection (« Quand le respect disparaît, il ne faut pas forcer les choses ! »)[14]. Il achève ainsi sa carrière internationale avec 104 sélections sous le maillot roumain, et 105 points inscrits[14].