US 258 intersects NC 97 in the hamlet of Lawrence before the highway enters Halifax County. The U.S. Highway crosses Deep Creek before becoming the Main Street of Scotland Neck. US 258 becomes concurrent with NC 125 at the south edge of the town and with NC 903, which enters from the east on 9th Street, in the center of town. NC 125 and NC 903 exit town to the west on 12th Street. US 258 has a junction with NC 561 north of Scotland Neck; the two highways cross the Roanoke River into Northampton County. The two highways meet the northern end of NC 308 just before entering Rich Square as Main Street. In the center of Rich Square, US 258 intersects NC 305 (Jackson Street), which exits town to the east with NC 561. The U.S. Highway has an at-grade crossing of the North Carolina and Virginia Railroad southwest of Woodland, where the highway, marked as Main Street, has a concurrency with NC 35 between Spruce Street and Linden Street.