The Highways of North Carolina
U.S. 158 
< 129 | Home | 158-A | 158 Bus | 170 >
Photo: US 158 west approaching Henderson (JP Natsiatka)
US 158
U.S. 158  354 miles
The Road: Begins at US 64-601 Mocksville (Davie County) and ends at US 64 in Whalebone (Dare County).
Towns and Attractions: Davie Co.: Mocksville  
Forsythe Co.: Clemmons, Winston-Salem 
Guilford Co.: Stokesdale  
Rockingham Co.: Reidsville  
Caswell Co.: Yanceyville  
Person Co.: Roxboro  
Granville Co.: Oxford  
Vance Co.: Henderson  
Warren Co.: Norlina, Warrenton  
Halifax Co.: ittleton, Roanoke Rapids, Weldon  
Northampton Co.: Jackson, Conway  
Hertford Co.: Murfreesboro, Winton  
Gates Co.: Gatesville, Sunbury  
Pasquotank Co.: Elizabeth City  
Camden Co.: Camden  
Currituck Co.: Coinjock, Point Harbor  
Dare Co.: Kill Devil Hills, Kitty Hawk  
History: US 158 appeared in 1932, joining NC 48 from Mocksville to Murfreesboro and NC 12 from Murfreesboro north into Virginia. From Norlina to Virginia this was also a renumbering of the original US 117.
1928 Gen Draft
Original US 117
1928 Gen Draft
1932 Texaco
US 117 becomes US 158
1932 Texaco

Here is a closer look geographically:
US 158 initially began at Gaither and Main in Mocksville, and headed northeast through Clemons towards Winston Salem using today's 158 except it used Harvest Way outside of Mocksville; abandoned loop + Bowles Rd near Dutchman Creek.
US 158 initially used Stratford Rd, then Runnymede Rd east, Hawthorne Rd south, Glade St east, Clover St east, W. 5th St east all the way through town, then Old Greensboro Rd northeast to modern 158.
US 158 followed its current routing to Stokesdale (the old loop roads were already bypassed by 1930). At Stokesdale, US 158 followed today's NC 65 northeast through Bethany and Wentworth. US 158 then followed Wentworth Rd to Reidsville, then south on Scales St before heading east on Lawsonville Ave back out to current US 158.
US 158 followed its current routing east except it used Leap Rd and Apple Rd in the Lawsonville area. In Yanceyville US 158 used Main St but otherwise continued along current US 158 to Roxboro. Here, US 158 followed Leasburg Rd to Main St south back to current US 158.
US 158 followed its current routing to Oxford, then used US 158 Business through Oxford and into Henderson. US 158 picked up its current routing to Norlina, then used US 158 Business through Warrenton. US 158 followed current US 158 to NC 48 north to Wilson St east back to US 158 which it appears to have followed through Weldon, Garysburg, Jackson, and Conway. It then used US 158 Business into Murfreesboro, then Hart St to cross Meherrin River. The route picked up Old US 258 north of the river, then current US 258 into Virginia where the route continued to US 58 Franklin.
In 1937 or 1938, US 158's west end moved to Depot and Main in Mocksville.
In 1941, NC 65 and US 158 swapped routings between Stokesdale and Reidsville.

1935 Gen Draft
US 158 via Wentworth
1935 Gen Draft
1941-42 Official
NC 65 swaps with US 158
1941-42 Official

Also in 1941, US 158 was rerouted at Murfreesboro to replace NC 30 through Winton, Gatesville, Sunbury, Elizabeth City and Camden.

1940 Official
NC 30, Murfreesboro to Barco
1940 Official

1942 Gen Draft
US 158 replaces NC 30
1942 Gen Draft

Then it replaced NC 34 southeast and over to the Outer Banks before curling west across Croatan Sound to end at NC 345 outside Manteo. The old route north of Murfreesboro became part of US 258.
Between 1945-49, US 158's west end was moved to its current endpoint at Main and Lexington.

1936 Davie County
US 158 initial Mocksville route
1936 Davie County
1938 Davie County
US 158 extended south to Depot
1938 Davie County
1949 Davie County
US 158 moved to current Mocksville end
1949 Davie County

Also between 1945-49, US 158 was given its current Roxboro routing, leaving behind a bit of unnumbered Leasburg Rd plus US 501-A (now just Main St).

1944 Person County
US 158 original Roxboro routing
1944 Person County
1949 Person County
US 158 current Roxboro routing
1949 Person County

About 1946, Gatesville was bypassed. It is unclear if the bypass was US 158-A until 1948 or not.

1944 Gates County
US 158 through Gates
1944 Gates County
1949 Gates County
US 158 bypasses Gates
1949 Gates County

Between 1950-53, US 158 was removed from Harvest Way northeast of Mocksville.
About 1951, US 158 was removed from Roanoke Island and instead ended at US 64-264 Whalebone Junction. The road west to Manteo became part of US 64-264 (now just 64).

1936 Official
NC 34 over to Outer Banks
1936 Official
1942 Gen Draft
US 158 replaces NC 34
1942 Gen Draft
1952 Shell
US 158 truncated by US 64-264
1952 Shell

In 1951, US 158 was given its bypass of Henderson, leaving behind US 158-A (now US 158 Business). Note that part of I-85 was built on top of this alignment.

1941-42 Official
US 158 through Henderson
1941-42 Official
1951 Official
US 158 Bypasses Henderson
1951 Official

About 1954, US 158 was placed on one-way splits in Winston Salem, with EB using 1st and 4th St.

1932 Texaco
US 158 initial Winston-Salem routing
1932 Texaco
1954 Official
US 158 on one-way splits
1954 Official

In 1955, US 158 was given its bypass of Warrenton, leaving behind US 158-A (now US 158 Business).
Also in 1955, US 158 was given its current routing at Roanoke Rapids, leaving behind SR 1629 and a bit of NC 48. The 1955 Official suggests the old route may have been US 158-A but the 1957 Halifax County map shows it as secondary.

1954 Official
US 158 through Warrenton and a zig-zag at NC 48
1954 Official
1955 Official
US 158 bypasses Warrenton and straightened out at NC 48
The implied 301-A in Weldon is real. Is the implied 158-A?
1955 Official

In 1959, US 158 was moved onto the new expressway (now I-40 Bus) from Stratford to Marshall (WB)/Cherry (EB) Sts
In 1960, US 158 received its current routing in Kill Devil Hills, Nags Head, and Kitty Hawk, leaving behind US 158 Business (now NC 12).

1959 Official
US 158 on Outer Banks
1959 Official
1960 Official
US 158 moved inland slightly
1960 Official

In this reroute, the endpoint for US 158 shifted west of Whalebone Jct.

1957 Dare County
US 158 ends at Whalebone Jct
1957 Dare County
1962 Dare County
US 158 ends a couple blocks west of Whalebone Jct
1962 Dare County

In 1962, US 158 was given its present Winston-Salem routing, leaving behind US 158 Bus on surface streets.

1959 Official
US 158 moved onto some new expressway
1959 Official
1962 Forsyth County
US 158 fully on expressway
1962 Forsyth County

Between 1963-67, US 158 was rerouted in Weldon onto one way pairs east to US 301.

1962 Halifax County
US 158 zig-zags through Weldon
1962 Halifax County
1968 Halifax County
US 158 onto one-way splits
1968 Halifax County

In Dec 1968 (NCDOT), US 158 was rerouted in Elizabeth City to avoid US 17 Business Road St and instead continue west on a newly constructed Elizabeth St extension to US 17 Bypass.

1968 Pasquotank County
US 158 using US 17 Bus, Road St
1968 Pasquotank County
1972 Pasquotank County
US 158 removed from US 17 Bus
1972 Pasquotank County

In Sept 1971 (NCDOT), US 158 was placed on the Yanceyville Bypass, which was made part of NC 86 about 15 years earlier. The old route through town became Main St and also part of NC 62.

1957 Caswell County
Only NC 86 bypasses Yanceyville
1957 Caswell County
1972 Caswell County
US 158 finally bypasses Yanceyville
1972 Caswell County

In May 1973 (NCDOT), US 13 was given a western bypass of Winton. The old route through town used Main St, Brickell St and King St across the Chowan River. Some of the Main St piece became part of NC 45 (today some is also part of NC 461).

1973-74 Official
US 13-158 through Winton
1973-74 Official
1974-75 Official
US 13-158 bypasses Winton
1974-75 Official

Between 1973-80, US 158 was straightened out near Dutchman Creek in Davie County.
In July 1979 (NCDOT), US 158 was placed on a bypass around the west and north of Reidsville by following US 29 Business and newly constructed NC 14 east. The old route became mostly secondary Richardson Dr and Lawsonville Av although in central Reidsville the route was still part of NC 87 for a time.

1972 Rockingham County
US 158 through Reidsville
1972 Rockingham County
1980 Rockingham County
US 158 bypasses Reidsville
1980 Rockingham County

In Nov 1984 (NCDOT), US 158 was placed on new 4-lane alignment between Morgans Corner and Elizabeth City, leaving beind Old US 17.
In Aug 1986 (NCDOT), US 158 was given its bypass of Coinjock, leaving behind SR 1143 north of the Intracoastal Waterway and SR 1405 south of it.
In 1993, US 158 was given its bypass of Oxford, leaving behind US 158 Business.

1992-93 Official
US 158 through Oxford
1992-93 Official
1993-94 Official
US 158 bypasses Oxford
1993-94 Official

In March 1995 (NCDOT), US 158 was given its bypass of Murfreesboro, leaving behind US 158 Business.

1993-94 Official
US 158 through Murfreesboro
1993-94 Official
1995 Official
US 158 bypasses Murfreesboro
1995 Official

In Sept 2015 (NCDOT), US 158 was rebuilt onto new alignment west of Winton, leaving behind SR 1348/1349, SR 1350 and some abandoned routing at the Patecasi Creek location.
In fall 2016, US 158 was rerouted at Reidsville to bypass along the south and east of town, using US 29 Business, NC 87, and the US 29 freeway. The old route remains US 29 Business the other direction and NC 14. This reroute was requested by Reidsville in 2001, then NCDOT forgot about it before finally approving it in 2010. An application to AASHTO wasn't completed until 2016...

Comments: US 158 is a viable alternative to the Outer Banks but is traffic clogged southeast of NC 168.
Although US 158 has many bypasses, it never seems to have been important enough to multilane much of anywhere.


Last Update: 3 November 2017

Previous: U.S. 129  |  Next: U.S. 158-A | U.S. 158 Bus | U.S. 170
Top  |  NCRoads.com Home ------------------------------------------------