Cannon Falls is a city in Goodhue County, Minnesota, United States. The population was 4,083 at the 2010 census.