Leta 1846, na začetku mehiško-ameriške vojne, je bil Roberts ponovno imenovan za prvega poročnika v redni vojski. Leta 1847 je bil povišan v kapitana in sodeloval v bitkah v Veracruzu, Cerro Gordo, Contreras, Churubusco.
, in zajetje Mexico Cityja, Matamorosa in prelaza Galajara. V Churubuscu je postal major, ker je vodil napadalce. Leta 1847 je za pogum med vojno prejel še eno poveljstvo, podpolkovnika. Po koncu vojne je služil na meji in v Washingtonu.