Williams is a city in Hamilton County, Iowa, United States. The population was 427 at the 2000 census. Williams is a regional center of wind power generation.
Williams is located at 42°29′15″N 93°32′35″W / 42.4875°N 93.54306°W / 42.4875; -93.54306 (42.487464, -93.543190).
According to the United States Census Bureau, the city has a total area of 0.9 square miles (2.3 km²), all of it land.