Born at Vincennes, Knox County, Indiana, the son of Colonel Thomas H. Cavanaugh, 6th Illinois Cavalry. Enlisted and mustered in as a 1st Lieutenant at Springfield, Sangamon County, Illinois, 21 Jul 1861. Promoted to Adjutant, 6th Illinois Cavalry at Shawneetown, Gallatin County, Illinois, 9 Jan 1862. He resigned his commission 15 Apr 1862. After his service he returned to Sangamon County, Illinois where he married Helen M. Holmes, 30 Nov 1865. He relocated to Saline County, Kansas about 1869. He was elected Kansas Secretary of State in 1874. He relocated to Olympia, Thurston County, Washington Territory by 1883 where he was an attorney and a special agent of the U.S. Land Office. He joined George H. Thomas Post No. 5 at Olympia, Oct 1883, serving the post as Senior Vice Commander in 1905. He was appointed last U.S. Surveyor General for Washington Territory in 1889 and continued to serve in the role after Washington statehood. He served as Captain Assistant Quartermaster, U.S. Volunteers from 12 May 1898 until 20 Feb 1899. By 1906 he was a resident of Prosser, Benton County, Washington where he was a member of Maj. Johnson Post No. 114. The 1909 Department of Washington and Alaska Proceedings list him as a past Post Commander. He relocated to Tacoma, Pierce County, Washington by 1909 where he died.