Madison County is a county in Illinois, United States, directly across the Mississippi River
from St. Louis, Missouri. It had a population of 265,859 at the 2020 census, an estimated
263,110 by 2025, and covers 741 square miles (1,920 km2) centred near 38°50′N 89°55′W.
Edwardsville is the county seat; its postal code is 62025. Granite City is the county’s
largest city. The county holds 9 cities, 20 incorporated villages and dozens of smaller
unincorporated communities across 24 civil townships, and it runs on Central Time. Its FIPS code
is 17119.
Towns & Villages in Madison County
Madison County has 29 incorporated places on record — 9 cities and 20 villages —
plus 5 census-designated places (CDPs) and about 19 unincorporated communities with no local
government of their own. CDP stands for census designated place; Unincorp. covers crossroads and
rural communities with no formal boundary.
| Place | Type | Township | Pop. | ZIP |
|---|---|---|---|---|
| Granite City | City | Granite City | 27,549 | 62040 |
| Edwardsville | City · seat | Edwardsville | 26,808 | 62025 |
| Alton | City | Alton | 25,676 | 62002 |
| Collinsville | City | Collinsville | 24,366 | 62234 |
| Godfrey | Village | Godfrey | 17,825 | 62035 |
| Glen Carbon | Village | — | 13,842 | 62034 |
| Troy | City | — | 10,960 | 62294 |
| Wood River | City | Wood River | 10,464 | 62095 |
| Highland | City | — | 9,991 | 62249 |
| Bethalto | Village | — | 9,310 | 62010 |
| Maryville | Village | — | 8,221 | 62062 |
| Pontoon Beach | Village | — | 5,876 | — |
| East Alton | Village | — | 5,786 | 62024 |
| Madison | City | — | 3,171 | 62060 |
| Fairmont City | Village | — | 2,265 | 62201 |
| South Roxana | Village | — | 1,891 | 62087 |
| Venice | City | Venice | 1,498 | 62090 |
| Roxana | Village | — | 1,454 | 62084 |
| St. Jacob | Village | St. Jacob | 1,358 | 62281 |
| Hartford | Village | — | 1,185 | 62048 |
| Worden | Village | — | 1,096 | 62097 |
| Hamel | Village | Hamel | 929 | 62046 |
| Marine | Village | Marine | 912 | 62061 |
| Livingston | Village | — | 763 | 62058 |
| Alhambra | Village | Alhambra | 622 | 62001 |
| Pierron | Village | — | 459 | — |
| New Douglas | Village | New Douglas | 350 | 62074 |
| Grantfork | Village | — | 341 | — |
| Williamson | Village | — | 183 | — |
Beyond the 29 incorporated cities and villages, five census-designated places have their own
population counts but no local government: Rosewood Heights (3,971), Holiday Shores (2,840),
Mitchell (1,217), Moro (397) and Prairietown. About 19 more communities are unincorporated
crossroads and hamlets with no separately counted population: Binney, Cottage Hills, Donkville,
Dorsey, Fosterburg, Goshen Settlement, Kaufman, Kuhn Station, LeClaire, Lincoln Place, Lumaghi
Heights, Meadowbrook, Midway, Newport, Poag, St. Morgan, State Park Place, Upper Alton and Wanda.
| Place | Type | Pop. | ZIP |
|---|---|---|---|
| Rosewood Heights | CDP | 3,971 | — |
| Holiday Shores | CDP | 2,840 | — |
| Mitchell | CDP | 1,217 | — |
| Moro | CDP | 397 | 62067 |
| Prairietown | CDP | — | — |
| Cottage Hills | Unincorp. | — | 62018 |
| Dorsey | Unincorp. | — | 62021 |
| Upper Alton | Unincorp. | — | — |
| Fosterburg | Unincorp. | — | — |
| Binney | Unincorp. | — | — |
| Donkville | Unincorp. | — | — |
| Goshen Settlement | Unincorp. | — | — |
| Kaufman | Unincorp. | — | — |
| Kuhn Station | Unincorp. | — | — |
| LeClaire | Unincorp. | — | — |
| Lincoln Place | Unincorp. | — | — |
| Lumaghi Heights | Unincorp. | — | — |
| Meadowbrook | Unincorp. | — | — |
| Midway | Unincorp. | — | — |
| Newport | Unincorp. | — | — |
| Poag | Unincorp. | — | — |
| St. Morgan | Unincorp. | — | — |
| State Park Place | Unincorp. | — | — |
| Wanda | Unincorp. | — | — |
Townships
Madison County has 24 civil townships. Recent county-subdivision population figures are not
broken out by township in the sources available to this page, so the Pop. column is left blank
rather than guessed. Twelve townships share a name with the incorporated city or village they
contain; the rest hold only unincorporated land and smaller hamlets.
| Township | Pop. (2020) | Main settlement |
|---|---|---|
| Alhambra | — | Alhambra |
| Alton | — | Alton |
| Chouteau | — | — |
| Collinsville | — | Collinsville |
| Edwardsville | — | Edwardsville |
| Fort Russell | — | — |
| Foster | — | — |
| Godfrey | — | Godfrey |
| Granite City | — | Granite City |
| Hamel | — | Hamel |
| Helvetia | — | — |
| Jarvis | — | — |
| Leef | — | — |
| Marine | — | Marine |
| Moro | — | Moro |
| Nameoki | — | — |
| New Douglas | — | New Douglas |
| Olive | — | — |
| Omphghent | — | — |
| Pin Oak | — | — |
| Saline | — | — |
| St. Jacob | — | St. Jacob |
| Venice | — | Venice |
| Wood River | — | Wood River |
ZIP Codes
- 62040 — Granite City
- 62025 — Edwardsville (also serves 62026, a Southern Illinois University Edwardsville PO box ZIP)
- 62002 — Alton
- 62234 — Collinsville
- 62035 — Godfrey
- 62034 — Glen Carbon
- 62294 — Troy
- 62095 — Wood River
- 62249 — Highland
- 62010 — Bethalto
- 62062 — Maryville
- 62024 — East Alton
- 62060 — Madison
- 62201 — Fairmont City
- 62087 — South Roxana
- 62090 — Venice
- 62084 — Roxana
- 62281 — St. Jacob
- 62048 — Hartford
- 62097 — Worden
- 62046 — Hamel
- 62061 — Marine
- 62058 — Livingston
- 62001 — Alhambra
- 62074 — New Douglas
- 62018 — Cottage Hills
- 62021 — Dorsey
- 62067 — Moro
Pontoon Beach, Pierron, Grantfork, Williamson and every unincorporated hamlet on this page have
no ZIP code of their own; mail there is delivered under the nearest incorporated town’s
code.
Geography
Madison County sits in southwestern Illinois where the Mississippi River bends past the
Metro East region opposite St. Louis. Of its 741 square miles, 716 are land and 25 are water,
about 3.4 percent — the Mississippi forms the county’s entire western edge, and
Horseshoe Lake, a former river channel now managed as a state fish and wildlife area near
Granite City, is the county’s largest natural lake. Cahokia Creek and its Wood River tributary
drain the county’s eastern and central townships before reaching the Mississippi near Alton
and Wood River.
Jersey County lies to the northwest, Macoupin County to the north, Montgomery County to the
northeast, Bond County to the east, and St. Clair County to the south. Across the Mississippi
River to the west lie the city of St. Louis and St. Charles County, both in Missouri.
Jersey County,
Macoupin County,
Montgomery County and
Bond County all have posts on this site;
St. Clair County does not yet.
Demographics
Madison County had a population of 265,859 at the 2020 census, and the latest estimate puts
the county near 263,110 residents, a slight decline. Granite City and Edwardsville are the two
largest communities, together holding about a fifth of the county’s population. Median
household income runs about $75,793, below Illinois’s statewide figure of $80,306 (2023
ACS). Population density works out to roughly 371 people per square mile of land, reflecting the
county’s position inside the St. Louis metropolitan area.
Economy & Local Life
Health care and social assistance employs the most workers in the county, about 18,707 people,
followed by retail trade at 14,977 and manufacturing at 14,731. Granite City’s steel mill,
long operated as U.S. Steel’s Granite City Works, has anchored the city’s manufacturing
employment for more than a century. The WRB Refining plant straddling Roxana and Wood River is
one of the largest oil refineries on the Mississippi. Southern Illinois University Edwardsville,
including its School of Dental Medicine in Alton, and Lewis and Clark Community College in
Godfrey are the county’s major education employers. The Great Godfrey Maze, a Halloween corn
maze cut into Glazebrook Park each October, is the county’s best-known annual event.
History
The Illinois territorial legislature created Madison County on 14 September 1812, carving it
out of Randolph and St. Clair counties. It was named for James Madison, then serving as
president. Edwardsville, laid out soon after, became the county seat.
On 7 November 1837, a pro-slavery mob in Alton attacked the warehouse of abolitionist
newspaper editor Elijah P. Lovejoy and shot him dead while he tried to defend his printing press
from destruction. Lovejoy became a rallying figure for the American abolitionist movement, and a
110-foot monument to him now stands in Alton City Cemetery.
Getting There
Interstates 55, 70, 255 and 270 all cross Madison County, converging near the Mississippi
River bridges into St. Louis.
- St. Louis, Missouri — about 15 miles southwest of Edwardsville
- Springfield, Illinois — about 75 miles northeast
- Belleville, Illinois — about 15 miles south
- Carlinville, Illinois — about 30 miles north
St. Louis Lambert International Airport, across the river in Missouri, is the nearest major
commercial airport. Amtrak’s Lincoln Service trains between Chicago and St. Louis stop at the
Alton Multimodal Transportation Center.
Frequently Asked Questions
Where is Madison County located?
It sits in southwestern Illinois along the Mississippi River, directly across from St. Louis,
Missouri, bordered by Jersey, Macoupin, Montgomery, Bond and St. Clair counties.
What is the population of Madison County?
265,859 at the 2020 census, with an estimate near 263,110 by 2025.
How big is Madison County?
741 square miles (1,920 km2), of which 716 square miles are land.
What is the county seat of Madison County?
Edwardsville is the county seat; Granite City is the county’s largest city.
How many towns and villages are in Madison County?
29 incorporated places — 9 cities and 20 villages — plus 5 census-designated places
and about 19 unincorporated communities.
What ZIP codes does Madison County use?
28 ZIP codes in all, led by 62040 (Granite City), 62025 (Edwardsville), 62002 (Alton) and 62234
(Collinsville).
What is Madison County known for?
Its Mississippi River steel and refining industries, Southern Illinois University Edwardsville,
and the 1837 killing of abolitionist editor Elijah P. Lovejoy in Alton.
More counties in this state: Towns and villages in Illinois.