It rises in Cass County at the outlet of Pine Mountain Lake, southeast of Backus, and takes a winding route generally southeast. It passes the city of Pine River and flows into Crow Wing County, where it enters Upper and then Lower Whitefish Lake, followed by Rush Lake and Cross Lake. The river continues to wind southeast, passing through Crow Wing State Forest and entering the Mississippi 6.5 miles (10.5 km) northwest of Ironton.