The Kansas City Chiefs declined Foles' option last week, making him a free agent. Foles, the Eagles' third-round pick in 2012, played three seasons in Philadelphia and one for the then-St. Louis Rams before joining the Chiefs in 2016.
The deal is worth a reported $11 million with $7 million guaranteed for Foles' reunion with head coach Doug Pederson. Pederson was quarterbacks coach during Foles' first stint in Philadelphia.
The 28-year-old Foles signed with the Chiefs last year after being released by the Rams following the 2015 season. He played in three games for the Chiefs in 2016, starting one, and throwing for 410 yards and three touchdowns.
In 2013, Foles lost the starting job to Michael Vick in training camp before becoming the starter in Week 6 due to an injury to Vick.
Foles took command and finished a remarkable season, throwing for 27 touchdown passes with just two interceptions and leading Philadelphia to the playoffs. He was selected for his only Pro Bowl that season.
With the signing of Foles, backup quarterback Chase Daniel asked the Eagles for his release and the move was expected, according to multiple reports.
Daniel signed a three-year, $21 million with the Eagles last offseason. He played in just one game in 2016, completing his only pass for 16 yards. He is set to cost $8 million against the salary cap.
Daniel, 30, would be a candidate to sign with the New York Jets or return to one of his previous stops in New Orleans or Kansas City.