The river's drainage basin is approximately 196,750 acres (307 sq. mi.) and covers northern Calhoun County, southern Eaton County, and southeastern Barry County in southwest Michigan. The headwaters of the Battle Creek River begin in Duck Lake in Clarence Township in northeast Calhoun County and flows north through the city of Charlotte, then flows southeast through the village of Bellevue and empties into the Kalamazoo River at the city of Battle Creek. Tributaries of the Battle Creek River include Wanadoga Creek, Ellis Creek, Crooked Brook, Goose Creek, Ackley Creek, Indian Creek, and Big Creek. The river is 54.5 miles long with an average gradient of 1.25 feet/mile.