The North Fork Nooksack River rises at the Nooksack Cirque in central Whatcom County, north of Mount Shuksan in the western part of North Cascades National Park. Gathering melt water off of East Nooksack Glacier, it flows generally west, passing north of Mount Baker. For most of its course the North Fork is paralleled by State Route 542 (also called the Mount Baker Highway).
Flowing west from the Nooksack Cirque, the river picks up large creeks such as Price Creek, a short creek draining Price Lake, as well as Ruth Creek, before flowing under the uppermost highway bridge.
At Nooksack Falls the river flows through a narrow valley and drops freely 88 feet into a deep rocky river canyon. The falls are viewable from the forested cover near the cliff edge. A small parking lot nearby contains a kiosk with information about the falls and a hydroelectric project.
Continuing to flow west, the North Fork receives several tributaries including Wells Creek, which joins the river right at the base of the falls as well as Glacier Creek, and Canyon Creek, before the river turns briefly south. The Middle Fork and South Fork join within a few miles of one another. The Middle Fork joins first, creating the Nooksack River proper. The South Fork joins just east of Deming in the Nooksack Indian Reservation.
The traditional name of the North Fork in the Nooksack language is Chuw7álich ("the next point").
The Middle Fork Nooksack River, about 20 miles (32 km) long, originates on the southern slopes of Mount Baker near Baker Pass. It flows generally northwest between Mount Baker and Twin Sisters Mountain.
The traditional name of the Middle Fork in the Nooksack language is Nuxwt’íqw’em ("always-murky water").
The South Fork Nooksack River, about 50 miles (80 km) long, rises in southern Whatcom County, east of Twin Sisters Mountain near Bell Pass and Lake Wiseman. It flows briefly south, entering Skagit County, then northwest and north, reentering Whatcom County and flowing by Acme.
The traditional name of the South Fork in the Nooksack language is Nuxw7íyem ("always-clear water").
After the Middle and South Forks join, the combined river flows northwest, emerging from the mountains and flowing past Everson and Lynden. Near Everson, the river is at risk of floods breaching the right bank, allowing flow into lower lands to the north, through Sumas River and into Canada. At Lynden the river turns southwest and then, near Ferndale, south, to enter the north side of Bellingham Bay at the Lummi Indian Reservation, approximately 3 miles west of Bellingham.
The river is subject to flooding due to high rainfall amounts and some of the deepest snow packs in the country, sometimes triggered by a Pineapple Express, a weather pattern that brings central Pacific wind and rain to the northwest. One such storm flooded the city of Everson on November 7, 2006.
The river currently supplies the nearby town of Glacier with hydroelectric power from a dam near Nooksack Falls. The river is also partially blocked with a low diversion dam on the Middle Fork by the city of Bellingham to divert water into Lake Whatcom, Bellingham's drinking water supply.
In the late 19th century, most of the stream flow of the Nooksack River near its mouth flowed through the present channel of the short Lummi River to Lummi Bay, northwest of Bellingham Bay. Near the start of the 20th century, a log jam plugged the channel to Lummi Bay, forcing the river to change its channel to the present one. The accumulation of the new river delta has been an ongoing field of research regarding the new wetlands it has created while no longer resupplying the previous delta on Lummi Bay, except during high flow conditions.