Quando scoppiò la guerra con il Messico, Morgan fu nominato colonnello della 2a fanteria volontaria dell'Ohio. Successivamente fu nominato colonnello del 15° reggimento di fanteria statunitense nel marzo 1847, servendo sotto il generale Winfield Scott. Per porre fine alla guerra di guerriglia e all'omicidio di soldati americani, il colonnello Morgan catturò un certo numero di eminenti cittadini messicani e emise un proclama che annunciava che per ogni soldato americano ucciso dai guerriglieri, un cittadino sarebbe stato giustiziato. Gli omicidi cessarono immediatamente. Fu promosso a generale di brigata nel 1848 per il suo valore nelle battaglie di Contreras e Churubusco.
, dove è stato gravemente ferito. Tornato in Ohio per riprendersi, ricevette il ringraziamento formale del legislatore dell'Ohio.