The deal also includes a $2 million signing bonus, sources said.
NFL Network first reported the agreement.
Last week, Barkley said during an appearance on “The Money Matters” podcast he “might have to take it to this level” amid his stalemate with the team over a long-term contract, and had considered not playing this season.
The Giants and Barkley did not agree to a deal before the deadline for franchised players to agree to long-term deals, meaning he would have had to play this season under the $10.091 million franchise tender.
Giants training camp begins Tuesday for veterans, and Barkley now is expected to be there.
Barkley, 26, finished fourth in the NFL with a career-high 1,312 rushing yards last season, ran for 10 touchdowns and tied for the team lead with 57 receptions. He has played in 60 career games over five seasons since being the No. 2 overall draft pick in 2018, when he was named Offensive Rookie of the Year.