Juriste à Louisville puis à Milledgeville, Johnson fut sénateur en 1848-49. En 1853, il fut élu gouverneur de Géorgie, poste qu'il occupa jusqu'en 1857. À la fin de son mandat, un nouveau comté fut nommé en son honneur.
En 1860, le Parti démocrate se déchira sur la question de l'extension de l'esclavage. Désigné candidat par les démocrates nordistes mais refusé par la plupart des démocrates sudistes, qui optèrent pour la candidature du vice-président Breckinridge, Stephen A. Douglas se vit adjoindre le sudiste Herschel Johnson en tant que colistier. Les délégués démocrates nordistes cherchaient ainsi à récupérer une partie de l'électorat des États du Sud. Mais la division du parti persista et permit la victoire du républicain antiesclavagiste Abraham Lincoln, ce qui entraîna la guerre de Sécession.
Initialement opposé à la sécession de la Géorgie, Herschel Johnson finit par l'accepter par loyauté envers son État. Il fut sénateur au Congrès des États confédérés d'Amérique de 1862 à 1865.