NY 3 begins at an intersection with NY 104A in Sterling. NY 3 continues east to meet NY 104 in the center of Hannibal. From there, NY 3 progresses across Oswego County and passes Lake Neatahwanta prior to entering Fulton. Within Fulton, NY 3 intersects NY 48 on the west bank of the Oswego River before crossing the river and meeting NY 481 at the eastern bank. East of the city, NY 3 passes south of the Oswego County Airport as it heads to the northeast through Palermo. Upon intersecting NY 264, NY 3 becomes signed as a north–south highway instead of as an east–west route. It proceeds north to the village of Mexico, where it meets NY 104 once again. NY 3 and NY 104 overlap briefly through the western portion of the village before separating at the center of Mexico. While NY 104 heads east toward Williamstown, NY 3 heads north toward the hamlet of Texas.