The Shell Rock River is a 113-mile-long (182 km) tributary of the Cedar River in southern Minnesota and northern Iowa in the United States. Via the Cedar and Iowa rivers, it is part of the watershed of the Mississippi River. The United States Board on Geographic Names settled on "Shell Rock River" as the stream's name in 1931. According to the Geographic Names Information System, it has also been known by the spelling "Shellrock River".
The Shell Rock River flows from Albert Lea Lake in Freeborn County, Minnesota, and soon enters Iowa, flowing generally south-southeastwardly through eastern Worth, northeastern Cerro Gordo, western Floyd, northeastern Butler, southwestern Bremer and northwestern Black Hawk counties, past the town of Glenville in Minnesota and the towns of Northwood, Plymouth, Rock Falls, Nora Springs, Rockford, Marble Rock, Greene, Clarksville and Shell Rock in Iowa. It joins the West Fork of the Cedar River in Black Hawk County, about 6 miles (10 km) north-northwest of Cedar Falls. At Rockford, Iowa, it collects the Winnebago River from the west.