Elgin is a city in Fayette County, Iowa, United States. The population was 676 at the 2000 census.
Elgin is located at 42°57′21″N 91°38′11″W / 42.95583°N 91.63639°W / 42.95583; -91.63639 (42.955965, -91.636394) at the confluence of Otter Creek with the Turkey River.
According to the United States Census Bureau, the city has a total area of 0.7 square miles (1.7 km²), all of it land. Elgin along with neighboring towns Clermont and Wadena makes up the Valley Community School district.