He served in the Mexican-American War with Major James Duncan's Battery A, 2nd U.S. Artillery, where he was frequently breveted for "good qualities" from the rank of private in 1845 through the rank of second lieutenant on June 28, 1848, later made permanent after the war on January 26, 1849. Benson was present with Battery A at the battles of Palo Alto, Resaca de la Palma, Monterrey, Vera Cruz, and Churubusco. He rose to the rank of first sergeant in command of an artillery piece in Duncan's battery under section chief Lieutenant Henry Jackson Hunt at the siege of Mexico City, particularly active at the Battle of Chapultepec at the San Cosmé Garita.