He was born in Guilford, Guilford County, North Carolina, moved with his parents to Bloomingdale, Indiana, in 1840, where he completed preparatory studies and studied law at the Cincinnati Law School.
He was admitted to the bar in 1858 and commenced practice in Terre Haute, Indiana, in 1858, he moved to Tuscola, Illinois, in 1859 he was State's attorney for the twenty-seventh judicial district of Illinois from March 1861 to December 1868.
Cannon was elected as a Republican to the Forty-third and to the eight succeeding Congresses (March 4, 1873-March 3, 1891), and was the chairman, Committee on Expenditures in the Post Office Department (Forty-seventh Congress), Committee on Appropriations (Fifty-first Congress).
He moved to Danville, Illinois, in 1878, and was unsuccessful candidate for reelection in 1890 to the Fifty-second Congress, but was elected to the Fifty-third and to the nine succeeding Congresses (March 4, 1893-March 3, 1913).
Joseph was chairman to the Committee on Appropriations (Fifty-fourth through Fifty-seventh Congresses), Committee on Rules (Fifty-eighth through Sixty-first Congresses), and Speaker of the House of Representatives (Fifty-eighth through Sixty-first Congresses). He received fifty-eight votes for the presidential nomination at the Republican National Convention at Chicago in 1908 but was an unsuccessful candidate for reelection in 1912 to the Sixty-third Congress; again elected to the Sixty-fourth and to the three succeeding Congresses (March 4, 1915-March 3, 1923). Cannon declined renomination for Congress at the end of the Sixty-seventh Congress and retired from public life.