President James K. Polk promoted Price to brigadier general of volunteers on July 20, 1847. He was named military governor of Chihuahua that same month. He led 300 men from his Army of the West at the Battle of Santa Cruz de Rosales on March 16, 1848, defeating a Mexican force three times his size. This was the last battle of the war, taking place days after the Treaty of Guadalupe Hidalgo had been ratified by the United States Congress on March 10. Although reprimanded by Secretary of War William L. Marcy and ordered to return with his army to New Mexico, Price was not punished. He was honorably discharged on November 25, 1848, and returned to Missouri as a hero.