According to the United States Census Bureau, Butler has a total area of 3.9 square miles (10.0 km²), all of it land.
As of the census of 2000, there were 4,209 people, 1,723 households, and 1,047 families residing in the city. The population density was 1,089.5 people per square mile (421.0/km²). There were 1,914 housing units at an average density of 495.4 per square mile (191.5/km²). The racial makeup of the city was 95.65% White, 1.92% African American, 0.43% Native American, 0.38% Asian, 0.02% Pacific Islander, 0.55% from other races, and 1.05% from two or more races. Hispanic or Latino of any race were 0.97% of the population.