With 99% of precincts reporting, Bishop, a 55-year-old state senator for whom Trump campaigned, led Democrat Dan McCready, a 36-year-old veteran of the Marines, 50.81% to 48.59%, the state board of elections said.
"The voters said no the radical liberal policies being pushed by today's Democratic party.
They said no to Nancy Pelosi, AOC and the squad," Bishop said during his victory speech.
He added, "This seat belongs to the people and we will have an open door to every citizen of the ninth district.
And to those who have felt left behind by a government that favors special interests and the well-connected for over hard-working men and women, know that I hear you." North Carolina's 9th congressional district, a suburban-rural area in the southeastern part of the state, has been represented by Republicans in Congress since the 1960s and voted for Trump by about 12 percentage points in 2016.
But Democrats thought they had a chance to flip it and build on the majority they won in the House of Representatives last year.
McCready lost by a slim margin in 2018 before state officials ruled the election was tainted by an absentee-ballot fraud scheme that benefited his Republican opponent, Mark Harris, and ordered a new vote.
Harris did not run again.