The river, which has a notable higher western bank, begins with three separate branches that flow into the
Horicon Marsh. The northernmost branch, the West Branch, begins just to the west of the village of
Brandon in
Fond du Lac County, Wisconsin and flows east and then south to Horicon Marsh. The South Branch rises north of Fox Lake in Dodge County and flows east through
Waupun to the marsh. The East Branch rises southeast of
Allenton in
Washington County just west of the
Niagara Escarpment, and flows north and west through
Theresa to the marsh. Leaving the marsh, it meanders southward to the Illinois border, ending about 300 miles later at the Mississippi River at the
Quad Cities in Illinois and Iowa. During its course, it passes through
Watertown, collects the
Crawfish River in
Jefferson, and receives the
Bark River at
Fort Atkinson. Shortly before merging, the Rock and Crawfish rivers cross
Interstate 94. Both rivers flood the nearby land regularly, and lanes on I-94 were temporarily closed in 2008 because of this flooding. In northern
Rock County, Wisconsin, it receives the
Yahara River, and flows southward through tiny Fulton,
Janesville and
Beloit into northern Illinois, where it receives the
Pecatonica River 5 miles (8 km) south of the state line. It flows south through
Rockford, then southwest across northwestern Illinois, picking up the
Kishwaukee River, passing
Oregon (here, on a high bluff overlooking the river is the
Eternal Indian sculpture),
Dixon,
Sterling (which has the
Sinnissippi Mounds national historic site and local park) and
Rock Falls before joining the
Mississippi at
Rock Island. It was on the Rock River in Dixon where
Ronald Reagan was a lifeguard in his youth. Reagan's favorite fishing spot, now called "Dutch Landing" after Reagan's
nickname, was just southwest of
Lowell Park on the Rock River. == River modifications ==