1846 m., Meksikos-Amerikos karo pradžioje, Robertsas buvo pakartotinai paskirtas pirmuoju leitenantu, Kalnų šautuvais, Reguliarinėje armijoje. 1847 m. jis buvo paaukštintas į kapitoną ir dalyvavo mūšiuose Veracruze, Cerro Gordo, Contreras,
Churubusco, ir Meksikos miesto užėmimas, Matamoros ir Galajara proga. Churubusco, jis buvo patentuotas majoras už vadovavimą išankstinei partijai šturmeriai. 1847 m. jis gavo dar vieną titulą - pulkininko leitenanto. Pasibaigus karui, jis tarnavo pasienyje ir Vašingtone.