10 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Storm Lake | 1 | 11,718 | 11,260 | 0.78% | 2,159 | 5 | City |
| Alta | 2 | 2,026 | 2,091 | -0.64% | 1,879 | 1 | City |
| Newell | 3 | 836 | 903 | -1.65% | 662 | 1 | City |
| Sioux Rapids | 4 | 715 | 747 | -0.97% | 872 | 1 | City |
| Lakeside | 5 | 693 | 702 | -0.29% | 3,066 | 0 | City |
| Albert City | 6 | 615 | 674 | -1.91% | 1,128 | 1 | City |
| Marathon | 7 | 218 | 231 | -1.36% | 291 | 1 | City |
| Rembrandt | 8 | 196 | 208 | -1.51% | 834 | 0 | City |
| Linn Grove | 9 | 153 | 162 | -1.29% | 274 | 1 | City |
| Truesdale | 10 | 63 | 66 | -1.56% | 432 | 0 | City |
Storm Lake is the largest city in Buena Vista County, with a population of 11,718.
Truesdale is the smallest city in Buena Vista County, with a population of 63.
There are 10 cities in Buena Vista County, Iowa.