En 1846, al començament de la Guerra Mèxic-Americana, Roberts va ser nomenat primer tinent, Rifles Montats, en l'Exèrcit Regular. Va ser ascendit a capità el 1847, i va participar en accions a Veracruz, Cerro Gordo, Contreras, Churubusco
, i la captura de Ciutat de Mèxic, Matamoros i el pas de Galajara. A Churubusco, va ser nomenat major per liderar un grup avançat d'assaltadors. Va rebre un altre brevet, el de tinent coronel el 1847 per la seva valentia durant la guerra. Després del final de les hostilitats, va servir a la frontera i a Washington, D.C.