The Skagit River rises at
Allison Pass in the
Canadian Cascades of
British Columbia. From there it flows northwest along the
Crowsnest Highway, which follows the river into
Manning Provincial Park. It turns abruptly south, where it receives Snass Creek from the right, then enters
Skagit Valley Provincial Park at the point where it receives the
Sumallo River from the right. It receives the
Klesilkwa River from the right, and turns southeast to flow into
Ross Lake, where it crosses the
Canada–United States border and into
Washington state. Ross Lake is formed by
Ross Dam and is approximately long, winding south through
Ross Lake National Recreation Area. Here the river receives Beaver Creek from the right and Ruby Creek from the left. Spilling out of the dam the river enters Diablo Lake, formed by
Diablo Dam, and receives Thunder and Colonial creeks from the left, before it enters the third and final reservoir, Gorge Lake, formed by
Gorge Dam. All three dams are part of the
Skagit River Hydroelectric Project. Past Gorge Dam, the river is often dry, as its waters have been diverted to generate
hydroelectricity. Water is returned to the river as it passes
Newhalem, a company town for
Seattle City Light. Copper and
Bacon creeks, both flowing from
North Cascades National Park, merge into the Skagit from the right as it meanders slowly through an agricultural valley, past
Marblemount, where the
Cascade River joins from the left, and
Rockport, where it receives its major tributary, the
Sauk River, from the left. After receiving the Sauk River, the Skagit turns west, flowing past
Concrete and receiving the
Baker River, its second-largest tributary, from the right. The river continues to flow west, past
Sedro-Woolley, Burlington and then
Mount Vernon. It is crossed by
Interstate 5, a major national highway, between Burlington and Mount Vernon; the
four-lane bridge over the Skagit River collapsed in May 2013 and was reopened a month later. At the former site of
Skagit City, the Skagit River diverges into two forks, a north and south fork.
Fir Island lies between the forks in the floodplain. These two forks both empty into
Skagit Bay, a branch of
Puget Sound. ==Natural history==