Avon is a city in Lorain County, Ohio, United States. The population was 21,193 at the 2010 census.