I 1846, ved begyndelsen af den mexicansk-amerikanske krig, blev Roberts genudnævnt til første løjtnant, Mounted Rifles, i den regulære hær. Han blev forfremmet til kaptajn i 1847 og deltog i kampene ved Veracruz, Cerro Gordo, Contreras, Churubusco
, og erobringen af Mexico City, Matamoros og Galajara pass. Ved Churubusco blev han udnævnt til major for at lede en avanceret gruppe af stormere. Han modtog yderligere et patent, til oberstløjtnant i 1847 for tapperhed under krigen. Efter fjendtlighedernes afslutning tjente han ved grænsen og i Washington, D.C.