1846 жылы Мексика-Америка соғысының басында Робертс Тұрақты әскерде бірінші лейтенант болып қайта тағайындалды. Ол 1847 жылы капитандыққа көтерілді және Веракрус, Серро Гордо, Контрерас, Чурубуско
, Мексика қаласының, Матаморостың және Галахара асуының басып алынуы. Чурабускода штурмдаушы топтың жетекшісі болғандықтан, майор атағын алды. Ол 1847 жылы соғыстағы ерлігі үшін лейтенант-полковник дәрежесін алды. Соғыс аяқталғаннан кейін ол шекарада және Вашингтонда қызмет етті.