When war erupted with Mexico, Morgan was appointed Colonel of the 2nd Ohio Volunteer Infantry. He subsequently was commissioned as Colonel of the 15th U.S. Infantry in March 1847, serving under General Winfield Scott. To put an end to the guerrilla warfare and murder of American soldiers, Colonel Morgan seized a number of prominent Mexican citizens and issued a proclamation announcing that for every American soldier killed by the guerrillas, a citizen would be executed. The murders ceased at once. He was breveted to brigadier general in 1848 for his gallantry at the battles of Contreras and Churubusco, where he was severely wounded. Returning to Ohio to recuperate, he received the formal thanks of the Ohio legislature.