2020 North Carolina Senate election

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.

Results summary
† - Incumbent not seeking re-election

Close races
Districts where the margin of victory was under 10%:
 * 1)  District 9, 1.02% (gain)
 * 2)  District 19, 1.06% 
 * 3)  District 3, 4.06% 
 * 4)  District 24, 4.86% 
 * 5)  District 31, 6.16% 
 * 6)  District 17, 6.64% 
 * 7)  District 18, 7.68% (gain)
 * 8)  District 27, 8.64% 
 * 9)  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)

District 1
Incumbent Republican Bob Steinburg had represented the 1st district since 2019.

District 2
Incumbent Republican Norman W. Sanderson had represented the 2nd district since 2013.

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.

District 4
Incumbent Democrat Toby Fitch had represented the 4th district since 2018.

District 5
Incumbent Democrat Don Davis had represented the 5th district since 2013, and previously from 2009 to 2011.

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.

District 7
Incumbent Republican Jim Perry had represented the 7th district since 2019. Perry was elected to his first full term.

District 8
Incumbent Republican Bill Rabon had represented the 8th district since 2011.

District 9
Incumbent Democrat Harper Peterson had represented the 9th district since 2019. Republican Michael Lee defeated Peterson in a rematch of the 2018election.

District 10
Incumbent Republican Brent Jackson had represented the 10th district since 2011.

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.

District 12
Incumbent Republican Jim Burgin had represented the 12th district since 2019.

District 13
Incumbent Republican Danny Britt had represented the 13th district since 2017.

District 14
Incumbent Democratic Minority Leader Dan Blue had represented the 14th district since 2009.

District 15
Incumbent Democrat Jay Chaudhuri had represented the 15th district and its predecessors since 2016.

District 16
Incumbent Democrat Wiley Nickel had represented the 16th district since 2019.

District 17
Incumbent Democrat Sam Searcy had represented the 17th district since 2019.

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.

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.

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.

District 21
Incumbent Democrat Ben Clark had represented the 21st district since 2013.

District 22
Incumbent Democrat Mike Woodard had represented the 22nd district since 2013.

District 23
Incumbent Democrat Valerie Foushee had represented the 23rd district since 2013.

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.

District 25
Incumbent Republican Tom McInnis had represented the 25th district since 2015.

District 26
incumbent Republican David Craven had represented the 26th district since his appointment in 2020. Craven was elected to his first full term.

District 27
Incumbent Democrat Michael Garrett had represented the 27th district since 2019.

District 28
Incumbent Democrat Gladys A. Robinson had represented the 28th district since 2011.

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.

District 30
Incumbent Republican president pro tempore Phil Berger had represented the 30th district and its predecessors since 2001.

District 31
Incumbent Republican Joyce Krawiec had represented the 31st district since 2014.

District 32
Incumbent Democrat Paul A. Lowe Jr. had represented the 32nd district since 2015.

District 33
Incumbent Republican Carl Ford had represented the 33rd district since 2019.

District 34
Incumbent Republican Vickie Sawyer had represented the 34th district since 2019.

District 35
Incumbent Republican Todd Johnson had represented the 35th district since 2019.

District 36
Incumbent Republican Paul Newton had represented the 36th district since 2017.

District 37
Incumbent Democrat Jeff Jackson had represented the 37th district since 2014.

District 38
Incumbent Democrat Mujtaba Mohammed had represented the 38th district since 2019.

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.

District 40
Incumbent Democrat Joyce Waddell had represented the 40th district since 2015.

District 41
Incumbent Democrat Natasha Marcus had represented the 41st district since 2019.

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.

District 43
Incumbent Republican Kathy Harrington had represented the 43rd district since 2011.

District 44
Incumbent Republican Ted Alexander had represented the 44th district since 2019.

District 45
Incumbent Republican Deanna Ballard had represented the 45th district since 2016.

District 46
Incumbent Republican Warren Daniel had represented the 46th district and its predecessors since 2011.

District 47
Incumbent Republican Ralph Hise had represented the 47th district since 2011.

District 48
Incumbent Republican Chuck Edwards had represented the 48th district since 2016.

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.

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.