Stewart, who will turn 31 on March 21, will reunite with former Carolina Panthers offensive coordinator Mike Shula and general manager Dave Gettleman in New York.
"I am very pleased that we were able to make Jonathan a New York Football Giant," Gettleman said in a statement Tuesday. "He is a quality runner with power and speed and brings a veteran, professional presence to our locker room. He's a terrific addition for us at this time."
The Panthers cut Stewart on Feb. 28. He is coming off one of his worst seasons statistically, despite playing behind an offensive line regarded by Panthers general manager Marty Hurney as one of the top five in the NFL.
Stewart averaged a career-low 3.4 yards per carry (680 yards on 198 carries) during the 2017 season, and his total yards were his fewest since 2013, when he was limited by injuries.
His yards per carry ranked 32nd among the 34 running backs who had at least 150 carries last season, ahead of only Adrian Peterson and Ameer Abdullah, according to ESPN Stats & Information. Stewart's 3.55 yards per touch were the fewest by a running back with at least 200 touches in a season since BenJarvus Green-Ellis (3.47) and Rashard Mendenhall (3.49) in 2013.
Stewart, the Panthers' leading rusher with 7,318 career yards, recently said he could still be a productive back. But Carolina is trying to get more touches for 2017 first-round pick Christian McCaffrey and opted to move on, clearing $3.7 million for the team's salary cap.
The Panthers drafted Stewart in the first round in 2008. In 10 seasons with the team, he averaged 4.3 yards per carry and scored 51 rushing touchdowns, while catching 162 passes for 1,295 yards and seven TDs. He and DeAngelo Williams each broke the 1,000-yard rushing barrier in 2009, and the Panthers haven't done it since -- the longest active drought by a team in the NFL, according to ESPN Stats & Information.