Following schooling at Shrewsbury, Cragg trained at the Royal Military College, Sandhurst. He was commissioned into the Loyal North Lancashire Regiment and served in World War I in Gallipoli and Mesopotamia, commanding the 6th Battalion of his regiment in 1917, before taking command of the 38th Infantry Brigade. After the war, he commanded the London District Discharge Centre (July 1919–June 1920). He then retired, and worked in the Political Service in Nigeria.