It rises in southeastern Aitkin County at the outlet of Porcupine Lake and flows generally north into Rice Lake National Wildlife Refuge, where it turns west and flows to the Mississippi 5 miles northeast of Aitkin.