The river rises in southeastern Livingston County, approximately 15 miles (24 km) northeast of Dansville. In the north of Steuben County, the river flows through the Town of Cohocton and the Village of Cohocton. It flows generally southeast through rural Steuben County, in a winding course through a valley the Allegheny Plateau, past Bath. At Painted Post, just west of Corning, the Cohocton River is joined by the Tioga River. State Route 17 follows the valley of the river along much of its route through Steuben County.
In the 1820s the New York State Legislature commissioned a study for the building of a canal that would link the Cohocton at Bath to Keuka Lake (Crooked Lake) and Seneca Lake. The Crooked Lake Canal connecting the two lakes was built but the link to the Cohocton was never completed.
Waneta Lake and Lamoka Lake are two small lakes located between the south ends of Keuka Lake and Seneca Lake that drain south into the Cohocton River, making them not part of the Finger Lakes which all drain north into the Saint Lawrence River system.