Johnson blev født på "Salisbury estate" nær Midlothian i Virginia, men hans familie flyttede snart til Kentucky. Han gik på West Point og fik eksamen efter fem års studier i 1830. Han blev udnævnt til midlertidig sekondløjtnant i 6. infanteriregiment og blev forfremmet til premierløjtnant efter mindre end et år. Han gjorde tjenste i Seminolekrigene i Florida og derpå i Vesten. I den Mexicansk-amerikanske krig udmærkede Johnson sig i kamp ved Belejringen af Veracruz, Slaget ved Cerro Gordo, Slaget ved Churubusco, Slaget ved Molino del Rey og Slaget ved Chapultepec. Han blev midlertidigt forfremmet to gange, til kaptajn og major under krigen og blev tildelt en ceremoniel sabel af staten Virginia for sit mod. Johnson vendte tilbage til tjeneste i de vestlige grænseområder, hvor han gjorde tjeneste i Dakota territoriet, Californien, Kansas og i Utah krigen.