# 2020 North Carolina Senate election

Elections in North Carolina :
Federal government
U.S. President
1792
1796
1800
1804
1808
1812
1816
1820
1824
1828
1832
1836
1840
1844
1848
1852
1856
1860
1868
1872
1876
1880
1884
1888
1892
1896
1900
1904
1908
1912
1916
1920
1924
1928
1932
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
2008
Dem
Rep
2012
2016
Dem
2020
Dem
Rep
2024
Dem
Rep
U.S. Senate
1789
1792
1795
1798
1799
1800
1804
1805 (sp)
1806
1810
1812
1814 (sp)
1815 (sp)
1816
1816 (sp)
1818
1822
1825
1846 (sp)
1828
1828 (sp)
1829
1829 (sp)
1830
1835
1836
1836 (sp)
1840 (sp)
1841
1843
1847
1849
1854 (sp)
1855
1858 (sp)
1861
1868
1872
1872 (sp)
1876
1879
1883
1884
1889
1890
1894
1894 (sp)
1897
1901
1903
1907
1909
1913
1914
1918
1920
1924
1926
1930
1932
1932 (sp)
1936
1938
1942
1944
1948
1948 (sp)
1950
1950 (sp)
1954
1954 (sp)
1956
1958 (sp)
1960
1966
1968
1972
1974
1978
1980
1984
1986
1986 (sp)
1990
1992
1996
1998
2002
2004
2008
2010
2014
2016
2020
2022
2026
U.S. House of Representatives
1790
1791
1793
1795
sp:4
1796
sp:4
1798
sp:10
1800
1801
sp:8
1802
sp:8
1803
1804
1805
sp:5
1806
sp:10
1808
sp:7
1810
1813
sp:3
1815
1816
sp:6
sp:8
1817
1818
sp:7
sp:11
1819
1821
sp:4
1823
1825
sp:2
1826
sp:8
1827
1829
sp:5
sp:10
1831
1833
1835
1837
1839
1841
1843
1845
1847
1849
1851
1853
1855
1857
1858
sp:8
1859
1865
1868
1870
1872
1874
1876
1878
1880
1882
1884
1886
1888
1890
1892
1894
1896
1898
1900
1902
1904
1906
1908
1910
1912
1914
1916
1918
1920
1928
1930
1934
1938
1940
1942
1946
1948
1950
1952
1956
1958
1960
sp:12
1968
1972
1980
1984
1986
1990
1992
1994
1996
1998
2000
2002
2004
sp:1
2006
2008
2010
2012
2014
sp:12
2016
2018
9
2019
sp:3
sp:9
2020
2022
2024 :
State executive
Gubernatorial elections
1803
1804
1805
1806
1807
1808
1809
1810
1810
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1838
1840
1842
1844
1846
1848
1850
1852
1854
1856
1858
1860
1862
1864
1865
1866
1868
1872
1876
1880
1884
1888
1892
1896
1900
1904
1908
1912
1916
1920
1924
1928
1932
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
2008
2012
2016
2020
2024
Lieutenant Governor elections
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
2008
2012
2016
2020
2024
Attorney General elections
2000
2004
2008
2012
2016
2020
2024
Council of State elections
1996
2000
2004
2008
2012
2016
2020
2024
Secretary of State elections
1940
1944
1996
2024 :
State legislature
State Senate elections
2000
2002
2004
2006
2008
2010
2012
2014
2016
2018
2020
2022
2024
State House elections
2000
2002
2004
2006
2008
2010
2012
2014
2016
2018
2020
2022
2024 :
State judiciary
Judicial elections
1996
1998
2000
2002
2004
2006
2008
2010
2012
2014
2016
2018
2020
2022
2024 :
Ballot measures
2012Amendment 1 :
Mayoral elections
Charlotte mayoral elections
2001
2003
2005
2007
2009
2011
2013
2015
2017
2019
2022
2023
2025
Cary mayoral elections
2011
2015
2019
2023
Durham mayoral elections
1979
1981
1983
1985
1987
1989
1991
1993
1995
1997
1999
2001
2003
2005
2007
2009
2011
2013
2015
2017
2019
2021
2023
2025
Fayetteville mayoral elections
2001
2003
2005
2007
2009
2011
2013
2015
2017
2019
2022
2023
Greensboro mayoral elections
2011
2013
2015
2017
2022
2025
Raleigh mayoral elections
1997
1999
2001
2003
2005
2007
2009
2011
2013
2015
2017
2019
2022
2024
Winston-Salem mayoral elections
1997
2001
2005
2009
2013
2016
2020
2024 :
vte :
An election was held on November 3, 2020, to elect all 50 members to North Carolina's Senate. The election coincided with the elections for other offices, including the Presidency, U.S. Senate, Governor, U.S. House of Representatives, and state house. The primary election was held on March 3, 2020, with a run-off on June 23, 2020.

## Background

In October 2020, The Washington Post identified this state election, along with the concurrent North Carolina House of Representatives election, as one of eight whose outcomes could affect partisan balance during post-census redistricting. New districts were being used in this election.

## Predictions

| Source | Ranking | As of |
| The Cook Political Report | Tossup | October 21, 2020 |

## Results summary

| District | Incumbent | Party | Elected | Party |
| 1st | Bob Steinburg | Rep | Bob Steinburg | Rep |
| 2nd | Norman W. Sanderson | Rep | Norman W. Sanderson | Rep |
| 3rd | Erica Smith† | Dem | Ernestine Bazemore | Dem |
| 4th | Toby Fitch | Dem | Toby Fitch | Dem |
| 5th | Don Davis | Dem | Don Davis | Dem |
| 6th | Harry Brown† | Rep | Michael Lazzara | Rep |
| 7th | Jim Perry | Rep | Jim Perry | Rep |
| 8th | Bill Rabon | Rep | Bill Rabon | Rep |
| 9th | Harper Peterson | Dem | Michael Lee | Rep |
| 10th | Brent Jackson | Rep | Brent Jackson | Rep |
| 11th | Rick Horner† | Rep | Lisa Stone Barnes | Rep |
| 12th | Jim Burgin | Rep | Jim Burgin | Rep |
| 13th | Danny Britt | Rep | Danny Britt | Rep |
| 14th | Dan Blue | Dem | Dan Blue | Dem |
| 15th | Jay Chaudhuri | Dem | Jay Chaudhuri | Dem |
| 16th | Wiley Nickel | Dem | Wiley Nickel | Dem |
| 17th | Sam Searcy | Dem | Sam Searcy | Dem |
| 18th | John Alexander† | Rep | Sarah Crawford | Dem |
| 19th | Kirk deViere | Dem | Kirk deViere | Dem |
| 20th | Natalie Murdock | Dem | Natalie Murdock | Dem |
| 21st | Ben Clark | Dem | Ben Clark | Dem |
| 22nd | Mike Woodard | Dem | Mike Woodard | Dem |
| 23rd | Valerie Foushee | Dem | Valerie Foushee | Dem |
| 24th | Rick Gunn† | Rep | Amy Galey | Rep |
| 25th | Tom McInnis | Rep | Tom McInnis | Rep |
| 26th | Dave Craven | Rep | Dave Craven | Rep |
| 27th | Michael Garrett | Dem | Michael Garrett | Dem |
| 28th | Gladys A. Robinson | Dem | Gladys A. Robinson | Dem |
| 29th | Eddie Gallimore | Rep | Steve Jarvis | Rep |
| 30th | Phil Berger | Rep | Phil Berger | Rep |
| 31st | Joyce Krawiec | Rep | Joyce Krawiec | Rep |
| 32nd | Paul A. Lowe Jr. | Dem | Paul A. Lowe Jr. | Dem |
| 33rd | Carl Ford | Rep | Carl Ford | Rep |
| 34th | Vickie Sawyer | Rep | Vickie Sawyer | Rep |
| 35th | Todd Johnson | Rep | Todd Johnson | Rep |
| 36th | Paul Newton | Rep | Paul Newton | Rep |
| 37th | Jeff Jackson | Dem | Jeff Jackson | Dem |
| 38th | Mujtaba Mohammed | Dem | Mujtaba Mohammed | Dem |
| 39th | Rob Bryan† | Rep | DeAndrea Salvador | Dem |
| 40th | Joyce Waddell | Dem | Joyce Waddell | Dem |
| 41st | Natasha Marcus | Dem | Natasha Marcus | Dem |
| 42nd | Dean Proctor | Rep | Dean Proctor | Rep |
| 43rd | Kathy Harrington | Rep | Kathy Harrington | Rep |
| 44th | Ted Alexander | Rep | Ted Alexander | Rep |
| 45th | Deanna Ballard | Rep | Deanna Ballard | Rep |
| 46th | Warren Daniel | Rep | Warren Daniel | Rep |
| 47th | Ralph Hise | Rep | Ralph Hise | Rep |
| 48th | Chuck Edwards | Rep | Chuck Edwards | Rep |
| 49th | Terry Van Duyn† | Dem | Julie Mayfield | Dem |
| 50th | Jim Davis† | Rep | Kevin Corbin | Rep |
† - Incumbent not seeking re-election
| Party | Party | Candi- dates | Votes | Votes | Seats | Seats | Seats |
| Party | Party | Candi- dates | No. | % | No. | +/– | % |
| | Republican Party | 50 | 2,682,645 | 50.778 | 28 | 1 | 56 |
| | Democratic Party | 50 | 2,530,188 | 47.893 | 22 | 1 | 44 |
| | Libertarian Party | 8 | 37,919 | 0.718 | 0 | | 0 |
| | Constitution Party | 1 | 32,295 | 0.611 | 0 | | 0 |
| Total | Total | 109 | 5,283,047 | 100 | 50 | | 100 |
Senate seats
Republican
56%
Democratic
44% :
Popular vote
Republican
50.778%
Democratic
47.893%
Libertarian
0.718%
Constitution
0.611% :

### Close races

Districts where the margin of victory was under 10%:
* District 9, 1.02% (gain)
* District 19, 3.06%
* District 3, 4.06%
* District 24, 4.86%
* District 31, 6.16%
* District 17, 6.64%
* District 18, 7.68% (gain)
* District 27, 8.64%
* District 11, 9.96%

### Incumbents defeated in primary election

* Eddie Gallimore (R-District 29), defeated by Steve Jarvis (R)

### Incumbents defeated in general election

* Harper Peterson (D-District 9), defeated by Michael Lee (R)

### Open seats that changed parties

* John Alexander (R-District 18) did not seek re-election, seat won by Sarah Crawford (D)
* Rob Bryan (R-District 39) did not seek re-election, seat won by DeAndrea Salvador (D)

## Detailed results
### Districts 1–25
#### District 1

Incumbent Republican Bob Steinburg had represented the 1st district since 2019.
North Carolina Senate 1st district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Bob Steinburg (incumbent) | 58,319 | 55.24% |
| | Democratic | Tess Judge | 47,248 | 44.76% |
| Total votes | Total votes | Total votes | 105,567 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 2

Incumbent Republican Norman W. Sanderson had represented the 2nd district since 2013.
North Carolina Senate 2nd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Norman W. Sanderson (incumbent) | 63,014 | 63.16% |
| | Democratic | Libbie Griffin | 32,870 | 32.95% |
| | Libertarian | Tim Harris | 3,884 | 3.89% |
| Total votes | Total votes | Total votes | 99,768 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 3

Incumbent Democrat Erica Smith had represented the 3rd district since 2015. Smith ran unsuccessfully for the U.S. Senate, losing the Democratic primary to Cal Cunningham. Democrat Ernestine Bazemore won the open seat.
North Carolina Senate 3rd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Ernestine (Byrd) Bazemore | 45,507 | 52.03% |
| | Republican | Thomas S. Hester Jr. | 41,959 | 47.97% |
| Total votes | Total votes | Total votes | 87,466 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 4

Incumbent Democrat Toby Fitch had represented the 4th district since 2018.
North Carolina Senate 4th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Toby Fitch (incumbent) | 51,384 | 57.16% |
| | Republican | Sammy Davis Webb | 38,514 | 42.84% |
| Total votes | Total votes | Total votes | 89,898 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 5

Incumbent Democrat Don Davis had represented the 5th district since 2013, and previously from 2009 to 2011.
North Carolina Senate 5th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Don Davis (incumbent) | 51,702 | 55.12% |
| | Republican | Karen Kozel | 42,104 | 44.88% |
| Total votes | Total votes | Total votes | 93,806 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 6

Incumbent Republican Majority Leader Harry Brown had represented the 6th district since 2004. Brown did not seek re-election, and fellow Republican Michael Lazzara won the open seat.
North Carolina Senate 6th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Michael Lazzara | 49,007 | 65.48% |
| | Democratic | Isaiah (Ike) Johnson | 25,831 | 34.52% |
| Total votes | Total votes | Total votes | 74,838 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 7

Incumbent Republican Jim Perry had represented the 7th district since 2019. Perry was elected to his first full term.
North Carolina Senate 7th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Jim Perry (incumbent) | 45,364 | 55.25% |
| | Democratic | Donna Lake | 36,737 | 44.75% |
| Total votes | Total votes | Total votes | 82,101 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 8

Incumbent Republican Bill Rabon had represented the 8th district since 2011.
North Carolina Senate 8th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Bill Rabon (incumbent) | 85,484 | 62.01% |
| | Democratic | David Sink | 48,040 | 34.85% |
| | Libertarian | Anthony Mascolo | 4,335 | 3.14% |
| Total votes | Total votes | Total votes | 137,859 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 9

Incumbent Democrat Harper Peterson had represented the 9th district since 2019. Republican Michael Lee defeated Peterson in a rematch of the 2018election.
North Carolina Senate 9th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Michael Lee | 63,255 | 50.51% |
| | Democratic | Harper Peterson (incumbent) | 61,987 | 49.49% |
| Total votes | Total votes | Total votes | 125,242 | 100% |
| | Republican gain from Democratic | Republican gain from Democratic | Republican gain from Democratic | Republican gain from Democratic |

#### District 10

Incumbent Republican Brent Jackson had represented the 10th district since 2011.
North Carolina Senate 10th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Brent Jackson (incumbent) | 56,740 | 65.09% |
| | Democratic | Vernon R. Moore | 30,425 | 34.91% |
| Total votes | Total votes | Total votes | 87,165 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 11

Incumbent Republican Rick Horner had represented the 11th district since 2017. Horner did not seek re-election. Republican representative Lisa Stone Barnes defeated Democratic former state senator Allen Wellons in the general election.
North Carolina Senate 11th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Lisa Stone Barnes | 61,287 | 54.98% |
| | Democratic | Allen Wellons | 50,193 | 45.02% |
| Total votes | Total votes | Total votes | 111,479 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 12

Incumbent Republican Jim Burgin had represented the 12th district since 2019.
North Carolina Senate 12th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Jim Burgin (incumbent) | 57,295 | 60.84% |
| | Democratic | John Kirkman | 36,875 | 39.16% |
| Total votes | Total votes | Total votes | 94,170 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 13

Incumbent Republican Danny Britt had represented the 13th district since 2017.
North Carolina Senate 13th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Danny Britt (incumbent) | 45,264 | 63.56% |
| | Democratic | Barbara Yates-Lockamy | 25,949 | 36.44% |
| Total votes | Total votes | Total votes | 71,213 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 14

Incumbent Democratic Minority Leader Dan Blue had represented the 14th district since 2009.
North Carolina Senate 14th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Dan Blue (incumbent) | 78,811 | 72.68% |
| | Republican | Alan David Michael | 24,678 | 22.76% |
| | Libertarian | Justin Walczak | 4,949 | 4.56% |
| Total votes | Total votes | Total votes | 108,438 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 15

Incumbent Democrat Jay Chaudhuri had represented the 15th district and its predecessors since 2016.
North Carolina Senate district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Jay Chaudhuri (incumbent) | 71,700 | 58.01% |
| | Republican | Mario J. Lomuscio | 45,457 | 36.78% |
| | Libertarian | Kat McDonald | 6,441 | 5.21% |
| Total votes | Total votes | Total votes | 123,598 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 16

Incumbent Democrat Wiley Nickel had represented the 16th district since 2019.
North Carolina Senate 16th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Wiley Nickel (incumbent) | 80,530 | 65.65% |
| | Republican | Will Marsh | 42,144 | 34.35% |
| Total votes | Total votes | Total votes | 122,674 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 17

Incumbent Democrat Sam Searcy had represented the 17th district since 2019.
North Carolina Senate 17th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Sam Searcy (incumbent) | 83,564 | 51.41% |
| | Republican | Mark Cavaliero | 72,774 | 44.77% |
| | Libertarian | Travis Groo | 6,204 | 3.82% |
| Total votes | Total votes | Total votes | 162,542 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 18

Incumbent Republican John Alexander had represented the 18th district and its predecessors since 2015. Alexander didn't seek re-election and Democrat Sarah Crawford won the open seat.
North Carolina Senate 18th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Sarah Crawford | 67,912 | 52.08% |
| | Republican | Larry E. Norman | 57,890 | 44.40% |
| | Libertarian | Jason Loeback | 4,595 | 3.52% |
| Total votes | Total votes | Total votes | 130,397 | 100% |
| | Democratic gain from Republican | Democratic gain from Republican | Democratic gain from Republican | Democratic gain from Republican |

#### District 19

Incumbent Democrat Kirk deViere had represented the 19th district since 2019. Former senator Wesley Meredith unsuccessfully sought to regain his seat in a rematch with DeViere.
North Carolina Senate 19th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Kirk deViere (incumbent) | 46,740 | 51.53% |
| | Republican | Wesley Meredith | 43,966 | 48.47% |
| Total votes | Total votes | Total votes | 90,706 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 20

Incumbent Democrat Natalie Murdock had represented the 20th district since her appointment on April 2, 2020. Murdock was elected to a full term.
North Carolina Senate 20th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Natalie Murdock (incumbent) | 102,732 | 83.61% |
| | Republican | John Tarantino | 20,143 | 16.39% |
| Total votes | Total votes | Total votes | 122,875 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 21

Incumbent Democrat Ben Clark had represented the 21st district since 2013.
North Carolina Senate 21st district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Ben Clark (incumbent) | 50,105 | 68.02% |
| | Republican | Sev Palacios | 23,557 | 31.98% |
| Total votes | Total votes | Total votes | 73,662 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 22

Incumbent Democrat Mike Woodard had represented the 22nd district since 2013.
North Carolina Senate 22nd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Mike Woodard (incumbent) | 60,402 | 58.43% |
| | Republican | Rick Padgett | 39,792 | 38.50% |
| | Libertarian | Ray Ubinger | 3,175 | 3.07% |
| Total votes | Total votes | Total votes | 103,369 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 23

Incumbent Democrat Valerie Foushee had represented the 23rd district since 2013.
North Carolina Senate 23rd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Valerie Foushee (incumbent) | 88,429 | 68.31% |
| | Republican | Tom Glendinning | 41,016 | 31.69% |
| Total votes | Total votes | Total votes | 129,445 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 24

Incumbent Republican Rick Gunn had represented the 24th district since 2011. Gunn did not seek re-election, and fellow Republican Amy Galey won the open seat.
North Carolina Senate 24th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Amy Galey | 61,287 | 52.43% |
| | Democratic | J. D. Wooten | 55,609 | 47.57% |
| Total votes | Total votes | Total votes | 116,896 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 25

Incumbent Republican Tom McInnis had represented the 25th district since 2015.
North Carolina Senate 25th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Tom McInnis (incumbent) | 60,152 | 59.15% |
| | Democratic | Helen Probst Mills | 41,546 | 40.85% |
| Total votes | Total votes | Total votes | 101,698 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

### Districts 26–50
#### District 26

incumbent Republican David Craven had represented the 26th district since his appointment in 2020. Craven was elected to his first full term.
North Carolina Senate 26th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | David (Dave) Craven (incumbent) | 63,077 | 70.33% |
| | Democratic | Jane Ledwell Gant | 26,609 | 29.67% |
| Total votes | Total votes | Total votes | 89,686 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 27

Incumbent Democrat Michael Garrett had represented the 27th district since 2019.
North Carolina Senate 27th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Michael Garrett (incumbent) | 67,287 | 54.32% |
| | Republican | Sebastian King | 56,575 | 45.68% |
| Total votes | Total votes | Total votes | 123,862 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 28

Incumbent Democrat Gladys A. Robinson had represented the 28th district since 2011.
North Carolina Senate 28th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Gladys A. Robinson (incumbent) | 75,640 | 76.34% |
| | Republican | D. R. King | 23,440 | 23.66% |
| Total votes | Total votes | Total votes | 99,080 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 29

Incumbent Republican Eddie Gallimore had represented the 29th district since 2019. Gallimore lost re-nomination to representative Steve Jarvis. Jarvis won the open seat.
North Carolina Senate 29th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Steve Jarvis | 74,210 | 74.49% |
| | Democratic | Duskin Lassiter | 25,409 | 25.51% |
| Total votes | Total votes | Total votes | 99,619 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 30

Incumbent Republican president pro tempore Phil Berger had represented the 30th district and its predecessors since 2001.
North Carolina Senate 30th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Phil Berger (incumbent) | 68,708 | 68.58% |
| | Democratic | Wally White | 31,481 | 31.42% |
| Total votes | Total votes | Total votes | 100,189 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 31

Incumbent Republican Joyce Krawiec had represented the 31st district since 2014.
North Carolina Senate 31st district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Joyce Krawiec (incumbent) | 56,479 | 53.08% |
| | Democratic | Terri Elizabeth LeGrand | 49,929 | 46.92% |
| Total votes | Total votes | Total votes | 106,408 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 32

Incumbent Democrat Paul A. Lowe Jr. had represented the 32nd district since 2015.
North Carolina Senate 32nd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Paul A. Lowe Jr. (incumbent) | 67,293 | 59.40% |
| | Republican | Ven Challa | 45,995 | 40.60% |
| Total votes | Total votes | Total votes | 113,288 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 33

Incumbent Republican Carl Ford had represented the 33rd district since 2019.
North Carolina Senate 33rd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Carl Ford (incumbent) | 73,453 | 70.54% |
| | Democratic | Tarsha Ellis | 30,679 | 29.46% |
| Total votes | Total votes | Total votes | 104,132 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 34

Incumbent Republican Vickie Sawyer had represented the 34th district since 2019.
North Carolina Senate 34th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Vickie Sawyer (incumbent) | 83,707 | 71.01% |
| | Democratic | Barry Templeton | 34,172 | 28.99% |
| Total votes | Total votes | Total votes | 117,879 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 35

Incumbent Republican Todd Johnson had represented the 35th district since 2019.
North Carolina Senate 35th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Todd Johnson (incumbent) | 75,055 | 63.45% |
| | Democratic | Jose Santiago | 43,244 | 36.55% |
| Total votes | Total votes | Total votes | 118,299 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 36

Incumbent Republican Paul Newton had represented the 36th district since 2017.
North Carolina Senate 36th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Paul Newton (incumbent) | 69,932 | 57.71% |
| | Democratic | Marcus J. Singleton | 51,249 | 42.29% |
| Total votes | Total votes | Total votes | 121,181 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 37

Incumbent Democrat Jeff Jackson had represented the 37th district since 2014.
North Carolina Senate 37th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Jeff Jackson (incumbent) | 64,562 | 54.99% |
| | Republican | Sonja P. Nichols | 48,507 | 41.32% |
| | Libertarian | Jeff Scott | 4,336 | 3.69% |
| Total votes | Total votes | Total votes | 117,405 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 38

Incumbent Democrat Mujtaba Mohammed had represented the 38th district since 2019.
North Carolina Senate 38th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Mujtaba Mohammed (incumbent) | 82,871 | 78.14% |
| | Republican | Jack W. Brosch | 23,187 | 21.86% |
| Total votes | Total votes | Total votes | 106,058 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 39

Incumbent Republican Rob Bryan had represented the 39th district since his appointment on October 2, 2019. Bryan did not seek re-election, and Democrat DeAndrea Salvador won the open seat.
North Carolina Senate 39th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | DeAndrea Salvador | 68,752 | 62.18% |
| | Republican | Joshua Niday | 41,823 | 37.82% |
| Total votes | Total votes | Total votes | 110,575 | 100% |
| | Democratic gain from Republican | Democratic gain from Republican | Democratic gain from Republican | Democratic gain from Republican |

#### District 40

Incumbent Democrat Joyce Waddell had represented the 40th district since 2015.
North Carolina Senate 40th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Joyce Waddell (incumbent) | 64,278 | 72.07% |
| | Republican | Bobbie Shields | 24,906 | 27.93% |
| Total votes | Total votes | Total votes | 89,184 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 41

Incumbent Democrat Natasha Marcus had represented the 41st district since 2019.
North Carolina Senate 41st district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Natasha Marcus (incumbent) | 82,741 | 71.93% |
| | Constitution | Christopher Cole | 32,295 | 28.07% |
| Total votes | Total votes | Total votes | 115,036 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 42

Incumbent Republican Andy Wells had represented the 42nd district since 2015. Wells ran unsuccessfully for lieutenant governor in the 2020 election, losing the Republican primary to Mark Robinson. Wells resigned before the end of his term, and Republican nominee Dean Proctor was appointed to the seat on August 18, 2020. Proctor was elected to a full term.
North Carolina Senate 42nd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Dean Proctor (incumbent) | 72,228 | 71.27% |
| | Democratic | Tina R. Miles | 29,111 | 28.73% |
| Total votes | Total votes | Total votes | 101,339 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 43

Incumbent Republican Kathy Harrington had represented the 43rd district since 2011.
North Carolina Senate 43rd district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Kathy Harrington (incumbent) | 69,409 | 65.43% |
| | Democratic | William Young | 36,670 | 34.57% |
| Total votes | Total votes | Total votes | 106,079 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 44

Incumbent Republican Ted Alexander had represented the 44th district since 2019.
North Carolina Senate 44th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Ted Alexander (incumbent) | 73,513 | 70.78% |
| | Democratic | David Lee Lattimore | 30,354 | 29.22% |
| Total votes | Total votes | Total votes | 103,867 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 45

Incumbent Republican Deanna Ballard had represented the 45th district since 2016.
North Carolina Senate 45th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Deanna Ballard (incumbent) | 71,897 | 68.45% |
| | Democratic | Jeanne Supin | 33,139 | 31.55% |
| Total votes | Total votes | Total votes | 105,036 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 46

Incumbent Republican Warren Daniel had represented the 46th district and its predecessors since 2011.
North Carolina Senate 46th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Warren Daniel (incumbent) | 67,919 | 72.28% |
| | Democratic | Edward Phifer | 26,045 | 27.72% |
| Total votes | Total votes | Total votes | 93,964 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 47

Incumbent Republican Ralph Hise had represented the 47th district since 2011.
North Carolina Senate 47th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Ralph Hise (incumbent) | 68,440 | 68.44% |
| | Democratic | David Brian Wheeler | 31,554 | 31.56% |
| Total votes | Total votes | Total votes | 99,997 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 48

Incumbent Republican Chuck Edwards had represented the 48th district since 2016.
North Carolina Senate 48th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Chuck Edwards (incumbent) | 68,197 | 58.90% |
| | Democratic | Brian Caskey | 47,580 | 41.10% |
| Total votes | Total votes | Total votes | 115,777 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |

#### District 49

Incumbent Democrat Terry Van Duyn had represented the 49th district since 2014. Van Duyn ran unsuccessfully for lieutenant governor in the 2020 election, losing the Democratic primary to Yvonne Lewis Holley. Democrat Julie Mayfield won the open seat.
North Carolina Senate 48th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Democratic | Julie Mayfield | 80,159 | 62.72% |
| | Republican | Bob Penland | 47,647 | 37.28% |
| Total votes | Total votes | Total votes | 127,806 | 100% |
| | Democratic hold | Democratic hold | Democratic hold | Democratic hold |

#### District 50

Incumbent Republican Jim Davis had represented the 50th district since 2011. Davis did not seek re-election, as he ran unsuccessfully for the U.S. House. State representative Kevin Corbin won the open seat.
North Carolina Senate 50th district general election, 2020 :
| Party | Party | Candidate | Votes | % |
| | Republican | Kevin Corbin | 73,875 | 66.66% |
| | Democratic | Victoria Fox | 36,954 | 33.34% |
| Total votes | Total votes | Total votes | 110,829 | 100% |
| | Republican hold | Republican hold | Republican hold | Republican hold |