Fue ascendido a Brevet Mayor después de la Batalla de Cerro Gordo el 18 de abril de 1847. También luchó en Contreras, Churubusco.
, y Chapultepec y fue herido en el último. Hacia el final de la guerra, había recibido promociones adicionales a teniente coronel y coronel, pero su rango permanente seguía siendo capitán de ingenieros, y seguiría siendo capitán hasta su transferencia a la caballería en 1855.