William H. Barnes (April 13, 1858 – July 10, 1945) was a baseball player, playing as a center fielder in the 19th century. He played for the St. Paul Saints of the Union Association, a replacement team which began play near the end of the 1884 season. He was a native of Indianapolis, Indiana.
In 8 games as the Saints' starting center fielder Barnes batted .200 (6-for-30) with two runs scored. In the field he recorded eight putouts, three errors, and participated in one double play.