Heflin was first settled in 1882 as a station on the railroad line from Atlanta. The town quickly grew and was incorported in 1886. Edwardsville was the county seat until 1905. In an election the county decided to move the county seat to Heflin.