10 cities
| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Storm Lake | 1 | 11,810 | 11,260 | 0.79% | 2,176 | 5 | City |
| Alta | 2 | 2,013 | 2,091 | -0.64% | 1,867 | 1 | City |
| Newell | 3 | 823 | 903 | -1.56% | 652 | 1 | City |
| Sioux Rapids | 4 | 709 | 747 | -0.84% | 865 | 1 | City |
| Lakeside | 5 | 691 | 702 | -0.29% | 3,058 | 0 | City |
| Albert City | 6 | 603 | 674 | -1.95% | 1,106 | 1 | City |
| Marathon | 7 | 216 | 231 | -0.92% | 288 | 1 | City |
| Rembrandt | 8 | 194 | 208 | -1.02% | 826 | 0 | City |
| Linn Grove | 9 | 151 | 162 | -1.31% | 271 | 1 | City |
| Truesdale | 10 | 63 | 66 | 0% | 432 | 0 | City |
Storm Lake is the largest city in Buena Vista County, with a population of 11,810.
Truesdale is the smallest city in Buena Vista County, with a population of 63.
There are 10 cities in Buena Vista County, Iowa.