Hij werd gepromoveerd tot brevetmajoor na de Slag bij Cerro Gordo op 18 april 1847. Hij vocht ook bij Contreras, Churubusco.
, en Chapultepec en werd gewond bij de laatste. Tegen het einde van de oorlog had hij extra promoties ontvangen tot luitenant-kolonel en kolonel, maar zijn permanente rang was nog steeds kapitein van de ingenieurs, en hij zou kapitein blijven tot zijn overdracht naar de cavalerie in 1855.