It issues from Lake Osakis on the Todd County line and flows east through Guernsey Lake, Little Sauk Lake and Juergens Lake, then south through Sauk Lake and past Sauk Centre, southeast past Melrose and Richmond, then northeast through Cedar Island Lake and Zumwalde Lake, past Cold Spring and Waite Park to the Mississippi River 2 miles north of St. Cloud.