James Mercer Garnett wurde im Haus seines Großonkels Charles F. Mercer (1778–1858) in Aldie (Virginia) geboren und wuchs an verschiedenen Orten auf, da sein Vater als Ingenieur häufig den Arbeitsplatz wechselte. James besuchte die Episcopal High School und studierte ab 1857 an der University of Virginia, wo er 1859 den Mastergrad erlangte. Nach einem Jahr als Lehrer in der Greenwood School im Albemarle County kehrte er 1860 an die University of Virginia zurück, um ein Graduiertenstudium aufzunehmen. Der Ausbruch des Sezessionskriegs unterbrach seine Karriere: Garnett trat am 17. Juli 1861 in die Confederate States Army ein. Er gehörte der sogenannten Stonewall Brigade an und stieg dort zum Captain of Artillery auf. Nach dem Gefecht bei Appomattox Court House am 9. April 1865 und der Kapitulation der konföderierten Streitkräfte erhielt Garnett seine Begnadigung und kehrte an die University of Virginia zurück, wo er noch 1865 als Licenciate Professor of Ancient Languages angestellt wurde. Ab 1866 unterrichtete er Griechisch und Mathematik.