Pence is batting .309 with 11 home runs and 62 RBI's in 99 games for the Astros this season.
"It's been a long chapter, and I've bled Astros for a long time, and I think everyone knows that," Pence told the Houston Chronicle. "I've had a wonderful opportunity."
The Phillies sent first baseman Jonathan Singleton, right-handers Jarred Cosart and Josh Zeid and a player to be named later to the Astros.
The 28-year-old Pence was selected a National League All-Star for the second consecutive season earlier this month.
"He's (Pence) a right-handed bat, a power bat, that we can insert in the middle of the lineup and I think he can do some damage," Phillies second basemen Chase Utley told local media.
"It will be fun to get a chance to know him and get to play with him."
Singleton and Cosart are currently playing for Class A Clearwater and Zeid is playing for Double-A Reading.
(Reporting by Mike Mouat in Windsor, Ontario)