Barnes was born on May 28, 1831, in southwest Nansemond County, the youngest of three or four sons and as many as five children of James Barnes, a farmer, and Elizabeth Barnes. He attended the University of Virginia from 1849 to 1852 and graduated from the Medical College of Virginia in 1853. Barnes then returned to Nansemond County and practiced medicine there until he retired about 1888. He frequently attended local fox hunts and was a popular figure known for his long, full beard and for his height, which earned him the nickname “Tall Sycamore of Nansemond.” He did not serve in the military during the Civil War and never married.Barnes was active in local politics for much of his adult life. He served on the Nansemond County Board of Supervisors from early in the 1870s until 1901 and in the House of Delegates from 1874 to 1877. From 1887 to 1894 he represented Isle of Wight, Nansemond, and Southampton counties in the Senate of Virginia. Barnes was also county chairman of the Democratic Party for many years. In April 1901 he was his party’s unanimous choice for Nansemond’s seat in a state constitutional convention, and he faced no Republican opposition in the May election. Barnes served on the Committee on the Elective Franchise and chaired the Committee on the Organization and Government of Counties. He took little part in the debates and voted with the majorities that adopted a suffrage article designed to reduce the number of black voters and implemented the constitution without a popular referendum.
Beginning in 1888 and 1889, respectively, Barnes sat for the rest of his life on the boards of visitors of the College of William and Mary and the Medical College of Virginia, serving as president of the latter from 1907 on. Barnes died at his home in Suffolk on June 4, 1913.