Cuando estalló la guerra con México, Morgan fue nombrado Coronel de la 2da Infantería Voluntaria de Ohio. Posteriormente fue comisionado como Coronel del 15o Regimiento de Infantería de los Estados Unidos en marzo de 1847, sirviendo bajo el mando del general Winfield Scott. Para poner fin a la guerra de guerrillas y el asesinato de soldados estadounidenses, el coronel Morgan capturó a varios ciudadanos mexicanos prominentes y emitió una proclama anunciando que por cada soldado estadounidense asesinado por las guerrillas, un ciudadano sería ejecutado. Los asesinatos cesaron de inmediato. Fue ascendido a general de brigada en 1848 por su valentía en las batallas de Contreras y
Churubusco, donde fue gravemente herido. Al regresar a Ohio para recuperarse, recibió las gracias formales de la legislatura de Ohio.