59 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Troy | 1 | 50,391 | 49,454 | 0.55% | 1,452 | 35 | Township |
| Edwardsville | 2 | 40,447 | 40,569 | -0.13% | 1,147 | 35 | Township |
| Collinsville | 3 | 35,130 | 35,635 | -0.23% | 1,008 | 35 | Township |
| Wood River | 4 | 29,348 | 29,953 | -0.32% | 1,178 | 25 | Township |
| Edwardsville | 5 | 26,690 | 26,813 | -0.09% | 1,336 | 20 | City |
| Granite City | 6 | 26,688 | 27,517 | -0.62% | 1,404 | 19 | City |
| Alton | 7 | 24,840 | 25,636 | -0.51% | 1,585 | 16 | Township |
| Alton | 8 | 24,799 | 25,636 | -0.67% | 1,582 | 16 | City |
| Granite City | 9 | 24,380 | 25,099 | -0.44% | 2,208 | 11 | Township |
| Collinsville | 10 | 23,615 | 24,368 | -0.64% | 1,549 | 15 | City |
| Godfrey village | 11 | 17,573 | 17,812 | -0.21% | 511 | 34 | Township |
| Godfrey | 12 | 17,559 | 17,812 | -0.29% | 511 | 34 | Village |
| Jarvis | 13 | 16,190 | 15,791 | 0.52% | 457 | 35 | Township |
| Glen Carbon | 14 | 13,890 | 13,855 | 0.05% | 1,347 | 10 | Village |
| Nameoki | 15 | 11,951 | 12,032 | 0.13% | 558 | 21 | Township |
| Troy | 16 | 11,899 | 11,454 | 0.75% | 2,090 | 6 | City |
| Wood River | 17 | 10,204 | 10,436 | -0.46% | 1,462 | 7 | City |
| Highland | 18 | 10,015 | 10,079 | -0.13% | 1,431 | 7 | City |
| Bethalto | 19 | 9,151 | 9,311 | -0.35% | 1,206 | 8 | Village |
| Fort Russell | 20 | 9,133 | 9,217 | -0.07% | 249 | 37 | Township |
| Maryville | 21 | 8,374 | 8,262 | 0.26% | 1,451 | 6 | Village |
| Helvetia | 22 | 8,301 | 8,344 | 0.02% | 231 | 36 | Township |
| Chouteau | 23 | 7,420 | 7,513 | -0.12% | 250 | 30 | Township |
| Saline | 24 | 6,844 | 6,873 | 0.03% | 199 | 34 | Township |
| Pontoon Beach | 25 | 5,842 | 5,857 | -0.05% | 586 | 10 | Village |
| East Alton | 26 | 5,584 | 5,768 | -0.66% | 1,050 | 5 | Village |
| Pin Oak | 27 | 4,532 | 4,535 | 0.02% | 127 | 36 | Township |
| Venice | 28 | 4,509 | 4,633 | -0.42% | 418 | 11 | Township |
| Rosewood Heights | 29 | 3,890 | 3,990 | -0.26% | 2,328 | 2 | CDP |
| Foster | 30 | 3,858 | 3,885 | -0.03% | 127 | 30 | Township |
| Moro | 31 | 3,484 | 3,504 | 0% | 109 | 32 | Township |
| Holiday Shores | 32 | 3,386 | 3,080 | 1.01% | 2,140 | 2 | CDP |
| Madison | 33 | 3,040 | 3,137 | -0.65% | 215 | 14 | City |
| St. Jacob | 34 | 2,868 | 2,892 | -0.21% | 80 | 36 | Township |
| Hamel | 35 | 2,751 | 2,764 | -0.04% | 76 | 36 | Township |
| Washington Park | 36 | 2,458 | 2,573 | -0.93% | 963 | 3 | Village |
| Omphghent | 37 | 2,369 | 2,407 | -0.13% | 71 | 33 | Township |
| Marine | 38 | 2,296 | 2,229 | 0.83% | 65 | 35 | Township |
| Fairmont City | 39 | 2,147 | 2,255 | -1.01% | 346 | 6 | Village |
| South Roxana | 40 | 1,839 | 1,887 | -0.54% | 852 | 2 | Village |
| Olive | 41 | 1,671 | 1,701 | -0.18% | 53 | 31 | Township |
| Alhambra | 42 | 1,571 | 1,589 | -0.06% | 45 | 35 | Township |
| Venice | 43 | 1,442 | 1,490 | -0.69% | 780 | 2 | City |
| Roxana | 44 | 1,397 | 1,449 | -0.78% | 197 | 7 | Village |
| St. Jacob | 45 | 1,366 | 1,375 | -0.15% | 1,613 | 1 | Village |
| Hartford | 46 | 1,143 | 1,186 | -0.78% | 220 | 5 | Village |
| Worden | 47 | 1,064 | 1,093 | -0.56% | 1,492 | 1 | Village |
| Marine | 48 | 979 | 909 | 1.45% | 1,389 | 1 | Village |
| Hamel | 49 | 925 | 930 | -0.11% | 777 | 1 | Village |
| Mitchell | 50 | 838 | 1,233 | -4.01% | 1,499 | 1 | CDP |
| Madison | 51 | 763 | 784 | -0.65% | 19 | 41 | Township |
| Livingston | 52 | 745 | 764 | -0.53% | 716 | 1 | Village |
| Leef | 53 | 607 | 611 | 0% | 21 | 29 | Township |
| Alhambra | 54 | 598 | 615 | -0.66% | 791 | 1 | Village |
| Moro | 55 | 525 | 362 | 7.14% | 2,397 | 0 | CDP |
| New Douglas | 56 | 519 | 525 | 0.19% | 25 | 21 | Township |
| New Douglas | 57 | 337 | 345 | -0.59% | 322 | 1 | Village |
| Highland | 58 | 262 | 260 | 0% | 7 | 36 | Township |
| Sauget | 59 | 133 | 138 | -0.75% | 29 | 5 | Village |
Troy is the largest city in Madison County, with a population of 50,391.
Sauget is the smallest city in Madison County, with a population of 133.
There are 59 cities in Madison County, Illinois.