Johnson nació en la plantación Salisbury, cerca de la actual Midlothian, en el condado de Chesterfield, Virginia, pero su familia se trasladó pronto a Kentucky. Asistió a la Academia Militar de los Estados Unidos y se graduó (tras cinco años de estudio) en 1838. Fue nombrado teniente segundo del 6º de Infantería de los Estados Unidos y fue ascendido a teniente primero en menos de un año. Sirvió en las guerras Seminolas en Florida y luego en el Oeste. En la guerra mexicano-estadounidense, Johnson se distinguió por su acción en Veracruz, Cerro Gordo, Churubusco, Molino del Rey y Chapultepec. Recibió dos ascensos, a capitán y a mayor, durante la guerra y el estado de Virginia le concedió una espada ceremonial por su valentía. Johnson volvió a prestar servicio en la frontera occidental, sirviendo en el territorio de Dakota, California, Kansas y en la expedición de Utah.