Harvin was released earlier this month by the Jets after playing for Ryan last season in New York. The move came once wide receiver Brandon Marshall, whom the Jets acquired in a trade from the Bears, passed his physical.
Harvin, 26, once regarded as a rising star in the NFL, was looking for his fourth team in four years. He played only eight games with Ryan and the Jets after arriving in a midseason trade with the Seahawks.
Harvin has endured a tumultuous career. He was an all-purpose threat for the Vikings from 2009 to 2012, but he was injury prone and clashed with coaches, so he was traded to the Seahawks.
Harvin missed most of the 2013 season with a hip injury, but he returned for the Super Bowl and contributed to the win by scoring on a kickoff return. By last season, the Seahawks grew weary of Harvin, who reportedly became a divisive influence in the locker room.
In his career, Harvin has 332 receptions for 3,802 yards and 21 touchdowns. He also has 10 touchdowns on rushes and kickoff returns.
Harvin will team with young wide receiver Sammy Watkins, who took to Twitter to share his excitement about his new teammate.
ESPN.com Jets reporter Rich Cimini contributed to this report.
Former Jet Percy Harvin Lands In Buffalo
ESPN Bills reporter Mike Rodak discusses how wide receiver Percy Harvin could be the playmaker Buffalo needs to help kick-start its offense.