Garnavillo is a city located in Clayton County, Iowa. Garnavillo has a 2026 population of 751. Garnavillo is currently declining at a rate of -0.66% annually and its population has decreased by -1.18% since the most recent census, which recorded a population of 760 in 2020.