Durante a guerra mexicano-estadounidense, loitou na batalla de Contreras e na batalla de Churubusco
, ambos en agosto de 1847. Durante a batalla de Churubusco foi ferido de novo, e o seu desempeño alí combinado coas súas accións en Contreras gañou o brevet ao rango de maior o 20 de agosto. Walker participou na Batalla de Molino del Rey a principios de setembro e foi ferido unha vez máis, esta vez nas costas. Pola súa actuación alí foi feito tenente coronel o 8 de setembro.