The Swan originates at Gray Wolf Lake in the Mission Mountains, at above sea level. Fed partly by melt from the Gray Wolf Glacier, the river descends through a short and steep canyon to Lindbergh Lake, at the base of the Mission Mountains. From there the river flows briefly east before turning north, passing Condon, flowing about to the northern end of the valley where it empties into Swan Lake. At the north end of the long lake, the river emerges into the Flathead Valley, where it turns abruptly west through a canyon, emptying into Flathead Lake at the town of Bigfork. Via Flathead Lake, it eventually drains to the Flathead River, a major tributary in the Columbia River system.