The Ossipee River begins at the village of Effingham Falls, New Hampshire, at the outlet of Berry Bay, the farthest downstream of a chain of lakes connected to Ossipee Lake. The river, flowing east, forms the border between the towns of Effingham and Freedom.[2] Entering Maine, the river continues to serve as a municipal boundary, first between Porter and Parsonsfield, and then between Hiram and Cornish. The river also forms the boundary between York County to the south and Oxford County to the north. Kezar Falls, a village in the town of Porter, forms a significant community along the river, with two dam impoundments.
Route 25 (New Hampshire and Maine) follows the river for its entire length.