Durante la guerra mexicano-americana, luchó en la batalla de Contreras y el
Batalla de Churubusco, ambas en agosto de 1847. Mientras estaba comprometido en Churubusco fue herido de nuevo, y su actuación allí combinada con sus acciones en Contreras le valió el brevet al rango de mayor el 20 de agosto. Walker participó en la Batalla de Molino del Rey a principios de septiembre y fue herido una vez más, esta vez por la espalda. Por sus acciones allí fue nombrado teniente coronel el 8 de septiembre.