Skip to content

Ohio · 2004 presidential election

Ohio presidential election results 2004

George W. Bush carried Ohio by 2.11 points (118,601 votes), winning 20 electoral votes.

Electoral votes
20
Votes counted
5,627,908
OH result
R+2.1
Compared with the nation
0.3 pts more Democratic
Swing since 2000
1.5 pts to D

Statewide result

CandidatePartyVotesShareBarElectoral votes
George W. BushRepublican2,859,76850.80%20
John KerryDemocratic2,741,16748.70%—
Total votes5,627,908

Sources: 2004

County resultsMIT Election Lab

Download CSV

MIT Election Data and Science Lab, County Presidential Election Returns 2000-2016 (compiled from official state election records)
Open the dataset

Geauga County: George W. Bush +20.9Hancock County: George W. Bush +41.4Hardin County: George W. Bush +26.5Holmes County: George W. Bush +51.4Licking County: George W. Bush +23.9Madison County: George W. Bush +28.3Miami County: George W. Bush +31.7Noble County: George W. Bush +18.1Pike County: George W. Bush +4.2Sandusky County: George W. Bush +12.2Seneca County: George W. Bush +18.3Union County: George W. Bush +40.7Wayne County: George W. Bush +23.3Wood County: George W. Bush +6.6Allen County: George W. Bush +32.7Brown County: George W. Bush +27.7Clinton County: George W. Bush +40.8Defiance County: George W. Bush +23.9Fayette County: George W. Bush +25.9Meigs County: George W. Bush +17.0Mercer County: George W. Bush +50.4Morrow County: George W. Bush +28.8Muskingum County: George W. Bush +15.0Paulding County: George W. Bush +26.3Pickaway County: George W. Bush +24.4Portage County: John Kerry +6.6Preble County: George W. Bush +30.6Richland County: George W. Bush +19.8Ross County: George W. Bush +10.3Shelby County: George W. Bush +42.3Stark County: John Kerry +1.7Tuscarawas County: George W. Bush +11.6Van Wert County: George W. Bush +44.4Washington County: George W. Bush +16.6Williams County: George W. Bush +29.8Wyandot County: George W. Bush +32.1Adams County: George W. Bush +28.1Ashland County: George W. Bush +30.6Auglaize County: George W. Bush +48.2Belmont County: John Kerry +6.0Butler County: George W. Bush +32.2Carroll County: George W. Bush +9.9Clark County: George W. Bush +2.0Clermont County: George W. Bush +41.6Columbiana County: George W. Bush +4.7Crawford County: George W. Bush +28.0Darke County: George W. Bush +39.7Delaware County: George W. Bush +32.4Erie County: John Kerry +7.0Franklin County: John Kerry +9.2Hamilton County: George W. Bush +5.4Highland County: George W. Bush +32.6Huron County: George W. Bush +16.6Jefferson County: John Kerry +5.0Lawrence County: George W. Bush +12.1Lorain County: John Kerry +12.6Mahoning County: John Kerry +25.9Marion County: George W. Bush +17.9Athens County: John Kerry +27.1Champaign County: George W. Bush +25.3Coshocton County: George W. Bush +14.8Fairfield County: George W. Bush +26.4Guernsey County: George W. Bush +12.3Henry County: George W. Bush +31.7Knox County: George W. Bush +26.8Logan County: George W. Bush +35.7Medina County: George W. Bush +14.0Morgan County: George W. Bush +13.2Perry County: George W. Bush +3.9Putnam County: George W. Bush +52.9Summit County: John Kerry +13.8Warren County: George W. Bush +44.5Lake County: George W. Bush +2.6Lucas County: John Kerry +20.6Monroe County: John Kerry +10.6Montgomery County: John Kerry +1.6Ottawa County: George W. Bush +4.1Scioto County: George W. Bush +4.1Trumbull County: John Kerry +23.8Vinton County: George W. Bush +10.1Ashtabula County: John Kerry +6.7Cuyahoga County: John Kerry +33.7Fulton County: George W. Bush +24.7Gallia County: George W. Bush +23.0Harrison County: George W. Bush +6.1Hocking County: George W. Bush +5.8Jackson County: George W. Bush +20.1Greene County: George W. Bush +22.5
Each county coloured by its winner and shaded by margin. Tap one for its history.
County John KerryGeorge W. BushOthers TotalMargin
Adams 4,2807,65366 11,999 28.1
Allen 16,48332,585206 49,274 32.7
Ashland 8,55516,171194 24,920 30.6
Ashtabula 24,06121,039309 45,409 6.7
Athens 18,99710,847200 30,044 27.1
Auglaize 5,90417,012115 23,031 48.2
Belmont 17,57415,589157 33,320 6.0
Brown 7,14012,647105 19,892 27.7
Butler 56,234109,866702 166,802 32.2
Carroll 6,2987,695117 14,110 9.9
Champaign 6,96711,71890 18,775 25.3
Clark 33,53434,938331 68,803 2.0
Clermont 25,88562,946211 89,042 41.6
Clinton 5,41712,93859 18,414 40.8
Columbiana 23,42625,754283 49,463 4.7
Coshocton 6,8789,27787 16,242 14.8
Crawford 7,77313,885143 21,801 28.0
Cuyahoga 448,486221,6063,674 673,766 33.7
Darke 7,84918,307161 26,317 39.7
Defiance 6,97511,393144 18,512 23.9
Delaware 27,04853,142265 80,455 32.4
Erie 21,40818,60167 40,076 7.0
Fairfield 24,77442,697384 67,855 26.4
Fayette 4,3347,37547 11,756 25.9
Franklin 285,800237,2522,772 525,824 9.2
Fulton 8,22413,63990 21,953 24.7
Gallia 5,3648,57751 13,992 23.0
Geauga 19,84030,358221 50,419 20.9
Greene 30,53048,377365 79,272 22.5
Guernsey 7,7689,961111 17,840 12.3
Hamilton 199,499222,4041,731 423,634 5.4
Hancock 10,34325,101162 35,606 41.4
Hardin 4,8898,43660 13,385 26.5
Harrison 3,7804,27455 8,109 6.1
Henry 5,1109,90192 15,103 31.7
Highland 6,19412,21276 18,482 32.6
Hocking 6,1736,93588 13,196 5.8
Holmes 2,6958,46657 11,218 51.4
Huron 10,58514,834173 25,592 16.6
Jackson 5,6998,58549 14,333 20.1
Jefferson 19,01917,184163 36,366 5.0
Knox 9,82817,081157 27,066 26.8
Lake 59,04962,193581 121,823 2.6
Lawrence 12,11115,457138 27,706 12.1
Licking 30,05149,014351 79,416 23.9
Logan 6,82514,471102 21,398 35.7
Lorain 78,96561,196569 140,730 12.6
Lucas 132,53687,106547 220,189 20.6
Madison 6,20011,12078 17,398 28.3
Mahoning 83,06948,712950 132,731 25.9
Marion 11,93017,171157 29,258 17.9
Medina 36,26448,183420 84,867 14.0
Meigs 4,4376,27361 10,771 17.0
Mercer 5,11715,649122 20,888 50.4
Miami 17,61134,005164 51,780 31.7
Monroe 4,2433,42462 7,729 10.6
Montgomery 142,977138,3611,215 282,553 1.6
Morgan 2,8733,75770 6,700 13.2
Morrow 5,77510,47579 16,329 28.8
Muskingum 16,42122,251191 38,863 15.0
Noble 2,6543,84145 6,540 18.1
Ottawa 11,11412,07568 23,257 4.1
Paulding 3,6106,20564 9,879 26.3
Perry 7,2577,85576 15,188 3.9
Pickaway 8,57814,160112 22,850 24.4
Pike 5,9896,51967 12,575 4.2
Portage 40,67435,583389 76,646 6.6
Preble 7,27413,733119 21,126 30.6
Putnam 4,39214,37087 18,849 52.9
Richland 24,64536,892330 61,867 19.8
Ross 13,97717,229463 31,669 10.3
Sandusky 12,65316,198104 28,955 12.2
Scioto 16,82318,257117 35,197 4.1
Seneca 10,95815,885148 26,991 18.3
Shelby 6,53416,204116 22,854 42.3
Stark 95,33892,211907 188,456 1.7
Summit 156,578118,5531,173 276,304 13.8
Trumbull 66,67340,976495 108,144 23.8
Tuscarawas 18,85423,825225 42,904 11.6
Union 6,66515,86996 22,630 40.7
Van Wert 4,09410,67854 14,826 44.4
Vinton 2,6513,25128 5,930 10.1
Warren 26,04368,035341 94,419 44.5
Washington 12,47517,480146 30,101 16.6
Wayne 19,78631,879183 51,848 23.3
Williams 6,48112,040118 18,639 29.8
Wood 29,40133,592353 63,346 6.6
Wyandot 3,7077,25681 11,044 32.1

Candidate votes as printed in the document. “Total” is the document’s total where it prints one, otherwise the sum of the candidate columns. Margin is the leading ticket’s lead in points over the second.

Notes on how this document was read
  • Secondary source: MIT Election Data and Science Lab, County Presidential Election Returns 2000-2016 (compiled from official state election records).

Method: Machine-readable dataset; county sums checked against the state totals in The American Presidency Project summary (within 0.5% for both main tickets).

Questions and answers

Who won Ohio in 2004?

George W. Bush won Ohio by 2.11 percentage points (118,601 votes).

How many electoral votes did Ohio have in 2004?

Ohio cast 20 electoral votes in 2004.

How many people voted for president in Ohio in 2004?

5,627,908 votes were counted for president.

How many counties did each candidate win in Ohio in 2004?

George W. Bush 72, John Kerry 16 (out of 88 counties with results).

How did Ohio change from 2000 to 2004?

The margin moved 1.5 points toward the Democratic ticket, from Republican by 3.6 points to Republican by 2.1 points.

Official results As published by The American Presidency Project (UC Santa Barbara) and the state documents it links. How we use this data