Elections / 2004 · President · OH
Ohio — 2004 presidential election
Recent presidential results
state2004 presidential electionOhio · PresidentBushR+2.1
How it voted
Share of the 2004 vote
| George W. Bush ✓Republican | 50.8% | 2,859,768 |
|---|---|---|
| John KerryDemocratic | 48.7% | 2,741,167 |
| OtherAll other candidates | 0.5% | 26,973 |
2004presidential margin
D+60R+60
88 counties, each filled by 2004 D-vs-R margin. Hover any county for its result.
Ohio cast 20 electoral votes this cycle.
County-level results (88 counties) — table
| County | Winner | Margin |
|---|---|---|
| Adams County, OH | Republican | R+28.1 |
| Allen County, OH | Republican | R+32.7 |
| Ashland County, OH | Republican | R+30.6 |
| Ashtabula County, OH | Democratic | D+6.7 |
| Athens County, OH | Democratic | D+27.1 |
| Auglaize County, OH | Republican | R+48.2 |
| Belmont County, OH | Democratic | D+6.0 |
| Brown County, OH | Republican | R+27.7 |
| Butler County, OH | Republican | R+32.1 |
| Carroll County, OH | Republican | R+9.9 |
| Champaign County, OH | Republican | R+25.3 |
| Clark County, OH | Republican | R+2.0 |
| Clermont County, OH | Republican | R+41.6 |
| Clinton County, OH | Republican | R+40.8 |
| Columbiana County, OH | Republican | R+4.7 |
| Coshocton County, OH | Republican | R+14.2 |
| Crawford County, OH | Republican | R+28.0 |
| Cuyahoga County, OH | Democratic | D+33.7 |
| Darke County, OH | Republican | R+39.8 |
| Defiance County, OH | Republican | R+23.9 |
| Delaware County, OH | Republican | R+32.4 |
| Erie County, OH | Democratic | D+7.0 |
| Fairfield County, OH | Republican | R+26.4 |
| Fayette County, OH | Republican | R+25.9 |
| Franklin County, OH | Democratic | D+9.2 |
| Fulton County, OH | Republican | R+24.7 |
| Gallia County, OH | Republican | R+22.9 |
| Geauga County, OH | Republican | R+20.9 |
| Greene County, OH | Republican | R+22.5 |
| Guernsey County, OH | Republican | R+12.3 |
| Hamilton County, OH | Republican | R+5.4 |
| Hancock County, OH | Republican | R+41.4 |
| Hardin County, OH | Republican | R+26.5 |
| Harrison County, OH | Republican | R+6.1 |
| Henry County, OH | Republican | R+31.7 |
| Highland County, OH | Republican | R+32.6 |
| Hocking County, OH | Republican | R+5.8 |
| Holmes County, OH | Republican | R+51.4 |
| Huron County, OH | Republican | R+16.6 |
| Jackson County, OH | Republican | R+20.1 |
| Jefferson County, OH | Democratic | D+5.1 |
| Knox County, OH | Republican | R+26.8 |
| Lake County, OH | Republican | R+2.6 |
| Lawrence County, OH | Republican | R+12.0 |
| Licking County, OH | Republican | R+23.9 |
| Logan County, OH | Republican | R+35.7 |
| Lorain County, OH | Democratic | D+12.6 |
| Lucas County, OH | Democratic | D+20.7 |
| Madison County, OH | Republican | R+28.2 |
| Mahoning County, OH | Democratic | D+25.9 |
| Marion County, OH | Republican | R+17.9 |
| Medina County, OH | Republican | R+14.0 |
| Meigs County, OH | Republican | R+17.0 |
| Mercer County, OH | Republican | R+50.4 |
| Miami County, OH | Republican | R+31.7 |
| Monroe County, OH | Democratic | D+10.6 |
| Montgomery County, OH | Democratic | D+1.6 |
| Morgan County, OH | Republican | R+13.2 |
| Morrow County, OH | Republican | R+28.8 |
| Muskingum County, OH | Republican | R+15.0 |
| Noble County, OH | Republican | R+18.1 |
| Ottawa County, OH | Republican | R+4.1 |
| Paulding County, OH | Republican | R+26.3 |
| Perry County, OH | Republican | R+3.9 |
| Pickaway County, OH | Republican | R+24.4 |
| Pike County, OH | Republican | R+4.2 |
| Portage County, OH | Democratic | D+6.6 |
| Preble County, OH | Republican | R+30.6 |
| Putnam County, OH | Republican | R+52.9 |
| Richland County, OH | Republican | R+19.8 |
| Ross County, OH | Republican | R+10.3 |
| Sandusky County, OH | Republican | R+12.2 |
| Scioto County, OH | Republican | R+4.1 |
| Seneca County, OH | Republican | R+18.3 |
| Shelby County, OH | Republican | R+42.3 |
| Stark County, OH | Democratic | D+1.7 |
| Summit County, OH | Democratic | D+13.8 |
| Trumbull County, OH | Democratic | D+23.8 |
| Tuscarawas County, OH | Republican | R+11.6 |
| Union County, OH | Republican | R+40.7 |
| Van Wert County, OH | Republican | R+44.4 |
| Vinton County, OH | Republican | R+10.1 |
| Warren County, OH | Republican | R+44.5 |
| Washington County, OH | Republican | R+16.5 |
| Wayne County, OH | Republican | R+23.3 |
| Williams County, OH | Republican | R+29.8 |
| Wood County, OH | Republican | R+6.6 |
| Wyandot County, OH | Republican | R+32.1 |
Nominees: John Kerry (D) · George W. Bush (R)
Ohio's presidential margins
1892–2024, the 2004 contest in context
| Year | Margin (D minus R) |
|---|---|
| 1892 | −0.1% |
| 1896 | −4.8% |
| 1900 | −6.6% |
| 1904 | −25.4% |
| 1908 | −6.2% |
| 1912 | +14.1% |
| 1916 | +7.7% |
| 1920 | −19.9% |
| 1924 | −34.6% |
| 1928 | −30.4% |
| 1932 | +2.8% |
| 1936 | +20.6% |
| 1940 | +4.4% |
| 1944 | −0.4% |
| 1948 | +0.2% |
| 1952 | −13.5% |
| 1956 | −22.2% |
| 1960 | −6.6% |
| 1964 | +25.9% |
| 1968 | −2.3% |
| 1972 | −21.6% |
| 1976 | +0.3% |
| 1980 | −10.6% |
| 1984 | −18.8% |
| 1988 | −10.9% |
| 1992 | +1.8% |
| 1996 | +6.4% |
| 2000 | −3.5% |
| 2004 | −2.1% |
| 2008 | +4.6% |
| 2012 | +3.0% |
| 2016 | −8.0% |
| 2020 | −8.0% |
| 2024 | −11.2% |
County-by-county results — 88 counties
| County | Won | Margin | Democratic | Republican | Total |
|---|---|---|---|---|---|
| Adams County | R | 4,281 | 7,653 | 12,000 | |
| Allen County | R | 16,470 | 32,580 | 49,256 | |
| Ashland County | R | 8,576 | 16,209 | 24,979 | |
| Ashtabula County | D | 24,060 | 21,038 | 45,407 | |
| Athens County | D | 18,998 | 10,847 | 30,045 | |
| Auglaize County | R | 5,903 | 17,016 | 23,034 | |
| Belmont County | D | 17,576 | 15,589 | 33,322 | |
| Brown County | R | 7,140 | 12,647 | 19,892 | |
| Butler County | R | 56,243 | 109,872 | 166,819 | |
| Carroll County | R | 6,300 | 7,695 | 14,112 | |
| Champaign County | R | 6,968 | 11,718 | 18,776 | |
| Clark County | R | 33,535 | 34,941 | 68,807 | |
| Clermont County | R | 25,887 | 62,949 | 89,079 | |
| Clinton County | R | 5,417 | 12,938 | 18,414 | |
| Columbiana County | R | 23,429 | 25,753 | 49,465 | |
| Coshocton County | R | 7,378 | 9,839 | 17,303 | |
| Crawford County | R | 7,773 | 13,885 | 21,801 | |
| Cuyahoga County | D | 448,503 | 221,600 | 673,777 | |
| Darke County | R | 7,846 | 18,306 | 26,313 | |
| Defiance County | R | 6,975 | 11,397 | 18,516 | |
| Delaware County | R | 27,048 | 53,143 | 80,456 | |
| Erie County | D | 21,421 | 18,597 | 40,085 | |
| Fairfield County | R | 24,783 | 42,715 | 67,882 | |
| Fayette County | R | 4,334 | 7,376 | 11,757 | |
| Franklin County | D | 285,801 | 237,253 | 525,827 | |
| Fulton County | R | 8,224 | 13,640 | 21,954 | |
| Gallia County | R | 5,366 | 8,576 | 13,993 | |
| Geauga County | R | 19,850 | 30,370 | 50,442 | |
| Greene County | R | 30,531 | 48,388 | 79,282 | |
| Guernsey County | R | 7,768 | 9,962 | 17,840 | |
| Hamilton County | R | 199,679 | 222,616 | 424,025 | |
| Hancock County | R | 10,352 | 25,105 | 35,619 | |
| Hardin County | R | 4,891 | 8,441 | 13,392 | |
| Harrison County | R | 3,780 | 4,274 | 8,109 | |
| Henry County | R | 5,111 | 9,902 | 15,105 | |
| Highland County | R | 6,194 | 12,211 | 18,481 | |
| Hocking County | R | 6,175 | 6,936 | 13,199 | |
| Holmes County | R | 2,697 | 8,468 | 11,220 | |
| Huron County | R | 10,568 | 14,817 | 25,558 | |
| Jackson County | R | 5,700 | 8,585 | 14,334 | |
| Jefferson County | D | 19,024 | 17,185 | 36,372 | |
| Knox County | R | 9,820 | 17,068 | 27,045 | |
| Lake County | R | 59,049 | 62,193 | 121,823 | |
| Lawrence County | R | 12,120 | 15,455 | 27,710 | |
| Licking County | R | 30,053 | 49,016 | 79,420 | |
| Logan County | R | 6,825 | 14,471 | 21,398 | |
| Lorain County | D | 78,970 | 61,203 | 140,742 | |
| Lucas County | D | 132,715 | 87,160 | 220,430 | |
| Madison County | R | 6,203 | 11,117 | 17,398 | |
| Mahoning County | D | 83,194 | 48,761 | 132,904 | |
| Marion County | R | 11,930 | 17,171 | 29,258 | |
| Medina County | R | 36,272 | 48,196 | 84,878 | |
| Meigs County | R | 4,438 | 6,272 | 10,771 | |
| Mercer County | R | 5,118 | 15,650 | 20,890 | |
| Miami County | R | 17,606 | 33,992 | 51,760 | |
| Monroe County | D | 4,243 | 3,424 | 7,729 | |
| Montgomery County | D | 142,997 | 138,371 | 282,584 | |
| Morgan County | R | 2,875 | 3,758 | 6,703 | |
| Morrow County | R | 5,775 | 10,474 | 16,328 | |
| Muskingum County | R | 16,421 | 22,254 | 38,866 | |
| Noble County | R | 2,654 | 3,841 | 6,540 | |
| Ottawa County | R | 11,118 | 12,073 | 23,259 | |
| Paulding County | R | 3,610 | 6,206 | 9,879 | |
| Perry County | R | 7,257 | 7,856 | 15,189 | |
| Pickaway County | R | 8,579 | 14,161 | 22,852 | |
| Pike County | R | 5,989 | 6,520 | 12,576 | |
| Portage County | D | 40,675 | 35,583 | 76,647 | |
| Preble County | R | 7,274 | 13,734 | 21,127 | |
| Putnam County | R | 4,392 | 14,370 | 18,849 | |
| Richland County | R | 24,638 | 36,872 | 61,840 | |
| Ross County | R | 13,978 | 17,231 | 31,671 | |
| Sandusky County | R | 12,686 | 16,224 | 29,014 | |
| Scioto County | R | 16,827 | 18,259 | 35,203 | |
| Seneca County | R | 10,957 | 15,886 | 26,991 | |
| Shelby County | R | 6,535 | 16,204 | 22,855 | |
| Stark County | D | 95,337 | 92,215 | 188,459 | |
| Summit County | D | 156,587 | 118,558 | 276,320 | |
| Trumbull County | D | 66,673 | 40,977 | 108,145 | |
| Tuscarawas County | R | 18,853 | 23,829 | 42,906 | |
| Union County | R | 6,665 | 15,870 | 22,631 | |
| Van Wert County | R | 4,095 | 10,678 | 14,827 | |
| Vinton County | R | 2,651 | 3,249 | 5,928 | |
| Warren County | R | 26,044 | 68,037 | 94,422 | |
| Washington County | R | 12,538 | 17,532 | 30,216 | |
| Wayne County | R | 19,786 | 31,879 | 51,848 | |
| Williams County | R | 6,481 | 12,040 | 18,639 | |
| Wood County | R | 29,401 | 33,592 | 63,346 | |
| Wyandot County | R | 3,708 | 7,254 | 11,043 |
Same ballot, 2004OH
Source. MIT Election Data + Science Lab — 2004 presidential returns · official county-level results. Real returns — nothing estimated.