The deal was first reported Friday by FanRag Sports.
Santana became the first to reach a deal among the nine free agents who last month rejected $17.4 million qualifying offers from their former teams.
Santana has played his entire big league career with the Cleveland Indians, who acquired him in a 2009 trade from the Los Angeles Dodgers. The 31-year-old Santana has developed into a consistent run producer, and after catching and playing third base, he has become one of the league's best fielding first basemen. He was a Gold Glove finalist this year.
The switch-hitting Santana batted .259 with 23 homers and 79 RBIs last season for the AL Central champion Indians. He has a career .249 average with 174 home runs in eight seasons for Cleveland.
Nearly 150 of Santana's 571 at-bats last season came in the leadoff spot, and with a career on-base percentage of .365, he can help provide RBI opportunities for Philadelphia's other top hitters in the middle of the order.
Santana's departure is a big loss for Cleveland, which led the AL with 102 wins during the regular season but lost to the New York Yankees in a Division Series.
Santana has a .213 average with four homers and eight RBI in 21 career postseason games.
The addition of Santana would be the second major deal completed Friday by the Phillies, who also traded shortstop Freddy Galvis to the San Diego Padres in a move that likely opens the shortstop job for top prospect J.P. Crawford.
Information from The Associated Press contributed to this report.