Middle River har sitt utspring i Guthrie County og først flyter den i sydøstlig retning gjennom Adair County, så i østlig retning gjennom Madison County, videre øst-nordøst gjennom Warren County, forbi byene Casey, Winterset, hvor den flyter under Roseman Covered Bridge, videre til Patterson, Bevington, Martensdale, Spring Hill og Charlise. En betydelig del av Middle Rivers løp gjennom Warren County er blitt rettet ut og lagt om til kanaler. Den flyter sammen med Des Moines River i Warren County nær Carlisle, 21 km sydøst for Des Moines.