V roce 1846, na začátku Mexiko-americké války, byl Roberts znovu jmenován prvním poručíkem v armádě. V roce 1847 byl povýšen na kapitána a viděl akci ve Veracruz, Cerro Gordo, Contreras, Churubusco
, a dobytí Mexico City, Matamoros a průsmyk Galajara. V Churubuscu získal titul majora za vedení předběžného oddílu útočníků. V roce 1847 obdržel další pověření na podplukovníka za statečnost během války. Po skončení nepřátelství sloužil na hranicích a ve Washingtonu.