55 cities
| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Troy | 1 | 50,669 | 49,454 | 0.55% | 1,460 | 35 | Township |
| Edwardsville | 2 | 40,395 | 40,569 | -0.13% | 1,145 | 35 | Township |
| Collinsville | 3 | 35,049 | 35,635 | -0.23% | 1,006 | 35 | Township |
| Wood River | 4 | 29,254 | 29,953 | -0.32% | 1,174 | 25 | Township |
| Edwardsville | 5 | 26,666 | 26,813 | -0.09% | 1,335 | 20 | City |
| Granite City | 6 | 26,522 | 27,517 | -0.62% | 1,395 | 19 | City |
| Alton | 7 | 24,713 | 25,636 | -0.51% | 1,577 | 16 | Township |
| Alton | 8 | 24,632 | 25,636 | -0.67% | 1,572 | 16 | City |
| Granite City | 9 | 24,272 | 25,099 | -0.44% | 2,198 | 11 | Township |
| Collinsville | 10 | 23,465 | 24,368 | -0.64% | 1,520 | 15 | City |
| Godfrey village | 11 | 17,536 | 17,812 | -0.21% | 510 | 34 | Township |
| Godfrey | 12 | 17,509 | 17,812 | -0.28% | 509 | 34 | Village |
| Jarvis | 13 | 16,273 | 15,791 | 0.51% | 459 | 35 | Township |
| Glen Carbon | 14 | 13,897 | 13,855 | 0.05% | 1,347 | 10 | Village |
| Troy | 15 | 11,988 | 11,454 | 0.75% | 1,921 | 6 | City |
| Nameoki | 16 | 11,966 | 12,032 | 0.13% | 558 | 21 | Township |
| Wood River | 17 | 10,158 | 10,436 | -0.45% | 1,456 | 7 | City |
| Highland | 18 | 10,002 | 10,079 | -0.13% | 1,398 | 7 | City |
| Fort Russell | 19 | 9,127 | 9,217 | -0.07% | 249 | 37 | Township |
| Bethalto | 20 | 9,119 | 9,311 | -0.35% | 1,201 | 8 | Village |
| Maryville | 21 | 8,397 | 8,262 | 0.27% | 1,448 | 6 | Village |
| Helvetia | 22 | 8,303 | 8,344 | 0.02% | 231 | 36 | Township |
| Chouteau | 23 | 7,411 | 7,513 | -0.12% | 250 | 30 | Township |
| Saline | 24 | 6,846 | 6,873 | 0.03% | 199 | 34 | Township |
| Pontoon Beach | 25 | 5,839 | 5,857 | -0.05% | 594 | 10 | Village |
| East Alton | 26 | 5,547 | 5,768 | -0.66% | 1,043 | 5 | Village |
| Pin Oak | 27 | 4,533 | 4,535 | 0.02% | 127 | 36 | Township |
| Venice | 28 | 4,490 | 4,633 | -0.42% | 416 | 11 | Township |
| Foster | 29 | 3,857 | 3,885 | -0.03% | 127 | 30 | Township |
| Moro | 30 | 3,484 | 3,504 | 0% | 109 | 32 | Township |
| Madison | 31 | 3,021 | 3,137 | -0.63% | 214 | 14 | City |
| St. Jacob | 32 | 2,862 | 2,892 | -0.21% | 80 | 36 | Township |
| Hamel | 33 | 2,750 | 2,764 | -0.04% | 76 | 36 | Township |
| Washington Park | 34 | 2,435 | 2,573 | -0.94% | 954 | 3 | Village |
| Omphghent | 35 | 2,366 | 2,407 | -0.13% | 71 | 33 | Township |
| Marine | 36 | 2,315 | 2,229 | 0.83% | 66 | 35 | Township |
| Fairmont City | 37 | 2,126 | 2,255 | -0.98% | 343 | 6 | Village |
| South Roxana | 38 | 1,830 | 1,887 | -0.49% | 848 | 2 | Village |
| Olive | 39 | 1,668 | 1,701 | -0.18% | 53 | 31 | Township |
| Alhambra | 40 | 1,570 | 1,589 | -0.06% | 45 | 35 | Township |
| Venice | 41 | 1,433 | 1,490 | -0.62% | 775 | 2 | City |
| Roxana | 42 | 1,387 | 1,449 | -0.72% | 194 | 7 | Village |
| St. Jacob | 43 | 1,364 | 1,375 | -0.15% | 1,610 | 1 | Village |
| Hartford | 44 | 1,135 | 1,186 | -0.7% | 218 | 5 | Village |
| Worden | 45 | 1,058 | 1,093 | -0.56% | 1,484 | 1 | Village |
| Marine | 46 | 993 | 909 | 1.43% | 1,409 | 1 | Village |
| Hamel | 47 | 924 | 930 | -0.11% | 776 | 1 | Village |
| Madison | 48 | 758 | 784 | -0.66% | 19 | 41 | Township |
| Livingston | 49 | 741 | 764 | -0.54% | 713 | 1 | Village |
| Leef | 50 | 607 | 611 | 0% | 21 | 29 | Township |
| Alhambra | 51 | 595 | 615 | -0.5% | 787 | 1 | Village |
| New Douglas | 52 | 520 | 525 | 0.19% | 25 | 21 | Township |
| New Douglas | 53 | 336 | 345 | -0.3% | 321 | 1 | Village |
| Highland | 54 | 262 | 260 | 0% | 7 | 36 | Township |
| Sauget | 55 | 132 | 138 | -0.75% | 29 | 5 | Village |
Troy is the largest city in Madison County, with a population of 50,669.
Sauget is the smallest city in Madison County, with a population of 132.
There are 55 cities in Madison County, Illinois.