The river rises at Saco Lake in Crawford Notch in the White Mountains and flows generally south-southeast through Bartlett and Conway in Carroll County, New Hampshire before crossing into Oxford County, Maine.