Originating as the Chilliwack River in Washington's North Cascades National Park, the river begins at Hannegan Pass and flows north across the Canada-United States border and into Chilliwack Lake. The river flows through Hells Gorge, a deep, dangerous-to-access gorge just below the river's headwaters that is home of a waterfall that the river drops over. The river picks up the Little Chilliwack River before crossing the border. There is a large sandy beach located where the river enters the lake, a popular recreational area among locals. The river exits the north end of the lake and flows generally west via the Chilliwack River Valley to emerge on the Fraser Lowland on the south side of the City of Chilliwack. At Vedder Crossing, the river is joined by the Sweltzer River before flowing under a bridge at which its name changes to the Vedder River, after which is flows west and north to join the Sumas River just before that river's confluence with the Fraser River at the northeast end of Sumas Mountain. The river crosses the Fraser floodplain from Vedder Crossing to its confluence with the Sumas via the Vedder Canal, which prevents the river's considerable spring freshet from flooding the surrounding farmlands and towns, and which is part of the drainage system that turned Sumas Lake into Sumas Prairie.