 The town was named for an early settler named George Sardis Barnes who opened the first hotel, saloon, and store north of the Eau Claire lakes in the late 1880s.According to the United States Census Bureau, the town has a total area of , of which is land and , or 5.24%, is water.Barnes is along Wisconsin Highway 27 and Bayfield County Highway N.

Barnes occupies the southwestern corner of Bayfield County, with Douglas County to the west and Sawyer County to the south.