The river's source is from the Bow Glacier, which is part of the Wapta Icefield. The outflow from this source flows into Bow Lake in the Canadian Rockies. It flows south to the village of Lake Louise then turns east and flows through the town of Banff and through Canmore. The Ghost Lake reservoir is formed upstream from the town of Cochrane. The Bow flows eastward to the city of Calgary; it continues on to form the South Saskatchewan River when the Bow joins with the Oldman River near Grassy Lake in southern Alberta. It reaches the Hudson Bay through the Saskatchewan River, Lake Winnipeg, and Nelson River.