Został awansowany na brevet majora po bitwie pod Cerro Gordo 18 kwietnia 1847 roku. Walczył także w Contreras, Churubusco
, i Chapultepec i został ranny na ostatnim. Do końca wojny otrzymał dodatkowe awansy na podpułkownika i pułkownika, ale jego stałym stopniem był nadal kapitan inżynierów i pozostanie kapitanem aż do przeniesienia do kawalerii w 1855 roku.