The river rises at 4,000 feet (1,200 m) above sea level in western Augusta County, below Dyers Knob on Shenandoah Mountain along the Virginia-West Virginia border. From the man-made Elkhorn Lake it flows south and then east through the George Washington National Forest. The river breaks out of the Allegheny Mountains at North River Gap and flows into the broad Valley of Virginia. The river passes through the town of Bridgewater and flows southeast, joining the South River at Port Republic. The Middle River, a major tributary, joins the North River just west of the town of Grottoes, four miles above the juncture with the South River.
The river is popular among canoeists, rafters and inner tubers. At one point during the 19th century barges shipped goods upstream via a canal/lock system.