En 1846, Shields partió a la guerra con dos brigadas bajo su mando. En febrero de 1847, cuando Tampico fue abandonado, sus hombres asumieron el control de la ciudad. Él comandó la 3a Brigada, División de Voluntarios, en las batallas de Vera Cruz
y Cerro Gordo, donde fue gravemente herido por un tiro de la uva, y pasó nueve semanas recuperándose. Regresó a luchar en un solo día, en las batallas de Contreras y Churubusco. Su orden ese día fue criticada como torpe por algunos, y alabada como hábil por otros. Necesitaba refuerzos para superar la fuerte resistencia enemiga, pero su brigada tomó más de 800 prisioneros.