The origins of NY 291 date back to 1908, when the entirety of modern NY 291 was designated as part of legislative Route 25, which began in Marcy and ended in Albany. The portion of Route 25 south of Barneveld was designated as part of New York State Route 12C, an alternate route of NY 12 between Utica and Barneveld, in the 1930 renumbering of state highways in New York. The section of NY 12C south of Whitestown was entirely overlapped with other routes while the portion north of Stittville utilized what is now NY 365. On January 1, 1970, NY 12C was replaced with an extended NY 365 from Stittville to Barneveld and NY 291 from Whitestown to Stittville.