1 Compétitions officielles nationales et internationales senior, incluant le parcours amateur et en équipe réserve. 2 Matchs officiels. Dernière mise à jour :
Né à Praia au Cap-Vert, Gelson part au Portugal durant sa jeunesse où il joue pour le club du Futebol Benfica avant de rejoindre le centre de formation du Sporting CP.
Sporting Clube Portugal (2015-2018)
Martins commence avec l'équipe B du Sporting où il fera une très bonne saison. Il joue son premier match professionnel le contre le Belenenses en Coupe de la Ligue.
Gelson marquera le 5000e but du Sporting contre le CD Tondela le .
En , il rompt son contrat unilatéralement qui le lie au Sporting CP, à la suite d'un incident où des ultras ont envahi le centre d'entraînement du club et agressé plusieurs joueurs et membres du personnel.
En , le club lisboète précise pour sa part dans un communiqué que son homologue madrilène s'est engagé à « verser 22,5 millions d'euros » pour régler leur différend à l'amiable.
Atlético Madrid (2018-2019)
Le , il s'engage librement en faveur de l'Atlético Madrid pour une durée de 5 ans, soit jusqu'en [1].
AS Monaco (2019-2024)
En manque de temps de jeu à l'Atlético Madrid, Martins est prêté pour six mois à l'AS Monaco en janvier 2019[2]. Il arrive dans un contexte difficile pour le club qui se bat pour échapper à la zone de relégation sous la houlette de Thierry Henry.
Le , Martins joue son premier match contre Guingamp en Coupe de la Ligue et délivre deux passes décisives malgré une défaite aux tirs au but[3]. Pour ses débuts en Ligue 1, il distribue une passe décisive à Aleksandr Golovine face au Toulouse FC, contribuant à une victoire 2-1 qui échappait aux monégasques depuis [4]. Le , Martins marque son premier but en Ligue 1 en ouvrant le score contre Montpellier (2-2)[5]. La journée suivante, il donne la victoire à Monaco contre le FC Nantes en marquant l'unique but de la rencontre[6]. Martins continue sur sa lancée face à l'Olympique lyonnais, pourtant favori, et marque un nouveau but pour une victoire 2-0 à domicile. Il termine sa saison en ouvrant le score contre Saint-Étienne, ce but n'empêchera pas la défaite monégasque.
Le , l'ASM annonce son transfert définitif avec la signature d'un contrat de cinq ans[7].
Lors de la saison 2020-2021, il ouvre son compteur but le 1er novembre contre les Girondins de Bordeaux sur un service parfait de Ruben Aguilar au deuxième poteau[8]. Finalement, Monaco l'emportera 4-0. Lors de la 33e journée de Ligue 1, il marque son troisième but de la saison sur un service d'Aurélien Tchouaméni et participe à la victoire 3-0 sur le terrain des Girondins de Bordeaux[9].
En ouverture de la saison 2021-2022, il marque le premier but en Ligue 1 sur un service de Caio Henrique contre le FC Nantes[10]. Il remet ça avec un deuxième but en 5 jours contre le Sparta Prague en ouvrant le score contre les Tchèques[11]. Lors du 6e journée, il offre une passe décisive à Aleksandr Golovin contre l'OGC Nice[12]. Son équipe fera match nul 2-2. Lors de la 11e journée de Ligue 1, il se jette sur le ballon repoussé par Jonas Omlin, le gardien montpelliérain et marque le troisième but monégasque[13]. Il offre une passe décisive et marque un nouveau but lors de la 17e journée de Ligue 1 contre le FC Metz[14]. Sur le terrain de l'AS Saint-Etienne, il offre une nouvelle passe décisive pour Kevin Volland[15].
Olympiakós (2024-)
Le ,
Martins signe à l'Olympiakós jusqu'en juin 2026, le transfert est estimé à 3 millions d'euros[16].
Convoqué par Fernando Santos fin septembre, il connaît sa première sélection le contre l'Andorre. L'année suivante, il dispute la Coupe des Confédérations 2017 dans laquelle le Portugal obtiendra la troisième place.
↑Le premier chiffre correspond au score de l'équipe jouant à domicile. Le score est écrit en vert si l'équipe de Belgique a gagné le match, en noir si elle a fait match nul et en rouge si elle a perdu le match.