A native of Yadkin County, North Carolina, Cowles served in the Army of Northern Virginia during the American Civil War, rising to the rank of lieutenant colonel. After the war, he moved to Wilkesboro and practiced law. From 1874 through 1878, Cowles served as the elected solicitor (district attorney) for the state's 10th judicial district. In 1884, he was elected as a Democrat to the 49th United States Congress, and was reelected for three additional terms. He did not run for a fifth term. While in Congress, Cowles chaired the Committee on Expenditures in the Department of Justice (Fiftieth Congress) and the Committee on Mines and Mining (Fifty-second Congress).
He was a member of the 9th regiment of the 1st North Carolina cavalry. He enlisted 5/16/1861 and was eventually promoted to Lt. Col. by the wars end. He fought under JEB Stuart and led Stuart’s rear guard when crossing the last river back to CSA territory ending Stuart’s “ride around McClellan”. Upon Stuart’s death in 1864 General Wade Hampton took command and W H H Cowles was with Hampton until capture at Petersburg at the wars end. He was wounded twice during the war.