Był synem kongresmana Gabriela Holmesa i jego żony Mary, w 1829 ukończył Akademię Wojskową w West Point jako 44. z 46 kadetów. Służył na różnych stanowiskach na froncie wojny z Seminolami i podczas wojny z Meksykiem, brał udział m.in. w bitwie pod Monterrey. Później brał udział w kampaniach przeciwko Nawahom. W momencie wybuchu wojny secesyjnej w kwietniu 1861 mieszkał w Nowym Jorku, gdzie był kierownikiem służby rekrutacyjnej w armii USA, 22 kwietnia 1861 zrezygnował ze służby i wrócił do Karoliny Północnej, gdzie związał swój los z nowo powstałymi Skonfederowanymi Stanami Ameryki; 5 czerwca 1861 jego stary przyjaciel i admirator Jefferson Davis, prezydent CSA, mianował go generałem brygady. Wkrótce potem został wysłany do Wirginii, gdzie jako dowódca brygady walczył w I bitwie pod Manassas, a w październiku 1861 otrzymał stopień generała majora. Był dowódcą Departamentu Karoliny Północnej, później dowodził dywizją podczas zwycięskich dla Konfederatów bitew siedmiodniowych (od 25 czerwca do 1 lipca 1862). Następnie został wysłany do Little Rock, by objąć dowództwo dopiero co utworzonego Departamentu Trans-Missisipi; zastąpił gen. Thomasa Hindmana, który stosował drakońskie metody wobec ludności. 1 października 1862 otrzymał stopień generała porucznika, a w marcu 1863 wyznaczony dowódcą Dystryktu Arkansas. 4 czerwca 1863 zaatakował garnizon Unii w Helenie, jednak bez powodzenia; armia Konfederacji poniosła ciężkie straty. W styczniu Edmund Kirby Smith napisał do prezydenta Davisa, prosząc go o zastąpienie Holmesa. Wściekły z powodu tej zniewagi, Holmes zrezygnował z dowództwa 6 miesięcy przed odpowiedzią Davisa, po czym wrócił do rodzinnego stanu. Do końca życia był farmerem.