1847 m. balandžio 18 d. po Cerro Gordo mūšio jis buvo paaukštintas į brevetą majorą. Jis taip pat kovojo Contreras, Churubusco
, ir Chapultepec ir buvo sužeistas paskutiniame. Iki karo pabaigos jis buvo paaukštintas į pulkininko pavaduotoją ir pulkininką, tačiau jo nuolatinis laipsnis vis dar buvo inžinierių kapitonas, ir jis išliko kapitonu, kol 1855 m. buvo perkeltas į kavaleriją.