Francisco da Costa Gomes was de zoon van een legerkapitein. Op 17-jarige leeftijd nam hij als cavalerist dienst in het Portugese leger. Hij studeerde aan de militaire academie en later wiskunde aan de Universiteit van Coimbra. Vanaf 1946 was hij hoger officier bij de Portugese strijdkrachten. Later vertegenwoordigde hij de Portugese strijdkrachten bij de NAVO in Norfolk (1954-1956).
Hij werd onderstaatssecretaris in de regering maar moest in 1961 het veld ruimen omdat hij zich uitsprak voor een politieke oplossing voor het koloniale vraagstuk (er was een bloedige bevrijdingsoorlog gaande in de Portugese koloniën in Afrika). Hij was ook mogelijk betrokken bij een militaire samenzwering (april 1961).
Generaal da Costa Gomes maakte nadien carrière in de Portugese koloniën (officieel "overzeese provincies" genaamd). In 1965 werd hij plaatsvervangend commandant, en in 1968 commandant van het Portugese leger in Mozambique. In 1970 werd hij opperbevelhebber van de troepen in Angola (tot 1972). In die laatste functie trachtte hij een militair verbond te sluiten met het bevrijdingsfront UNITA, gericht tegen de MPLA en FNLA, twee andere bevrijdingsbewegingen.
In 1972 keerde Costa Gomes naar Portugal terug en werd op 12 september van dat jaar chef van de generale staf. Hij verving daarmee generaal Venâncio Deslandes. In 1974 sprak hij zich positief uit over generaal Spínola's boek Portugal en de toekomst. Spínola veroordeelde hierin het regeringsbeleid ten opzichte van de Afrikaanse koloniën en het zelfbeschikkingsrecht der volkeren. In maart 1974 werd Costa Gomes ontslagen omdat hij weigerde de eed van trouw aan premier Marcello Caetano te zweren. Generaal Spínola - zijn plaatsvervanger als chef van de generale staf - werd eveneens ontslagen.
Op 25 april 1974 vond de Anjerrevolutie plaats. De Beweging van de Strijdkrachten (MFA) benoemde Costa Gomes opnieuw als chef van de generale staf. Ook nam hij zitting in de Junta voor de Nationale Redding, waarin hij een van de zeven officieren was en waarvan zijn vriend generaal António de Spínola voorzitter was. Op 15 mei werd Spínola president, maar legde reeds op 30 september van dat jaar dit ambt neer omdat hij niet kon en wilde regeren met linkse officieren en politici. Francisco da Costa Gomes werd de nieuwe president. Hij nam de rol van bemiddelaar op zich tussen de behoudende en progressieve militairen in de junta. In 1975 verving hij de procommunistische premier Vasco Gonçalves door de neutrale marinecommandant José Baptista Pinheiro de Azevedo.
Op 27 juni 1976 werd Costa Gomes als president vervangen door António Ramalho Eanes, de winnaar van de eerste vrije presidentsverkiezingen in de Portugese geschiedenis.
Na zijn aftreden werd Costa Gomes in 1981 medeoprichter en lid van de beweging "Generaals voor de Vrede."