Giovanni Costa est né à Rome en 1826. Il étudie notamment avec Luigi Durantini.
En 1848 il a participé comme volontaire aux campagnes de garibaldiennes de 1848-1849 et de 1859. Son attachement à l'unité italienne s'est renouvelé en 1870, quand il a été le premier à se lancer à l'assaut de Rome, près de la Porta Pia.
À Florence il a lutté pour l'indépendance de l'art envers les traditions artistiques en se faisant connaître comme peintre de paysages d'une remarquable originalité et d'une grande influence dans le retour à l'observation minutieuse de la nature.