The new deal for the Super Bowl MVP includes an upgraded deal for the 2018 season and a mutual option for 2019, according to the report. Terms were not available, but reportedly Foles will receive a $2 million signing bonus.
Foles was due to become a restricted free agent after this season and there was speculation that he would be part of a trade on draft day, with the Eagles asking for at least a No. 1 pick.
"I know there was some stuff going around, a possible trade, and I would love the opportunity to be a starter again," Foles, who replaced injured starter Carson Wentz late last season, said on a radio show earlier this week. "I know my spot in Philly.
"I think I've shown what I can do. I'm signed for one more year and I love the team, I love the city. I'm excited for Carson to get back on his feet. I'll be ready to go whenever they need me. But we'll see."
Foles, who was due to make $7 million in the final season of a two-year contract, also will make several millions more in incentives if he becomes the starter and hits various statistical benchmarks.
Wentz is still recovering from a torn ACL and LCL sustained in Week 14 last season, but said last week his goal is to start the season opener.