NY 305 begins at the Pennsylvaniastate line as a continuation of PA 446 in the town of Portville. The designation proceeds northward as Portville-Eldred Road, paralleling a river and ponds as a two-lane rural highway. After an intersection with Barbertown Road, NY 305 enters the hamlet of Carroll and passes several residences northward. The route crosses a stream, intersecting with NY 417. NY 305 and NY 417 form a concurrency, crossing north through the hamlet of Toll Gate Corner as a two-lane residential street, entering the village of Portville. In Portville village, NY 305 turns to the northeast away from NY 417 at an intersection with Brooklyn Street. Turning north on Brooklyn, paralleling a long stretch of residences and crossing the former Bradford Division. Passing east of Chestnut Hill Cemetery, NY 305 leaves the village. In the town of Portville, NY 305 changes monikers to Portville-Obi Road, crossing into a two-lane rural highway. Paralleling Dodge Creek to the northeast, NY 305 crosses the county line from the town of Portville into the Allegany County town of Genesee, changing names to Obi Road. Continuing along Dodge Creek, NY 305 parallels several residences before bending northward into the hamlet of Obi in the town of Clarksville. In Obi, NY 305 intersects with County Route 5 in the residential hamlet. Continuing northward, NY 305 enters the hamlet of West Clarksville, where the route becomes a two-lane residential street and an intersection with CR 40. After leaving West Clarksville, NY 305 intersects with CR 1. NY 305 bends to the northwest, entering the town of Cuba, paralleling several mobile homes into the hamlet of South Cuba. In South Cuba, the route intersects with CR 6 before entering the village of Cuba. In Cuba, NY 305 becomes known as South Street, crossing the former Erie Railroad main line into the village. Continuing northward, NY 305 becomes a two-lane residential street. At the intersection with CR 20, NY 305 changes names to Genesee Street, intersecting with the eastern terminus of NY 446. After crossing a commercial strip, NY 305 enters interchange 28 of I-86 and NY 17. Crossing a former railroad alignment, NY 305 continues through the town of Cuba as a two-lane road into the hamlet of North Cuba. Crossing an intersection with CR 25, NY 305 leaves North Cuba near Cuba Lake. After an intersection with CR 7, NY 305 parallels a railroad alignment into the town of New Hudson, where it enters the hamlet of Lyons Corners. Northeast of Lyons Corners, the route enters the hamlet of Black Creek, where NY 305 intersects with CR 41. The two routes parallel, crossing northeast through New Hudson as a two-lane rural road. After, NY 305 enters the town of Belfast, paralleling several residences to the northeast and into the hamlet of Rockville, where the route turns eastward, crossing the former railroad right-of-way. After the right-of-way, NY 305 turns the southeast, crossing several residences. After an intersection with Lake Road, NY 305 turns northeast through Belfast. Paralleling the former railroad right-of-way, the route remains rural for several miles, intersecting with NY 19 in the town of Belfast. NY 305 terminates at this intersection, along with the right-of-way.
History
The segment of modern NY 305 north of Cuba was originally the southernmost portion of Route 16, an unsigned legislative route assigned by the New York State Legislature in 1908. At Belfast, Route 16 continued north on what is now NY 19. The Cuba–Belfast section of legislative Route 16 was assigned a posted route designation as part of the 1930 renumbering of state highways in New York when it was designated as the northern half of NY 94, which continued south through Cuba to NY 17 in Portville. At the same time, what is now NY 45 in Rockland County was designated as NY 305. The NY 94 and NY 305 designations were swapped in the early 1940s, placing NY 305 on its current alignment from Portville to Belfast. South of Portville, what is now NY 305 was originally designated as part of NY 16. It was added to NY 305 in August 1962 when NY 16 was rerouted south of Olean to follow what had been NY 16A.