The 28-year-old Bowker played in 19 games for the Pirates this season, going 4 for 17 with a double before he was designated for assignment on May 4. Bowker batted .306 in 106 games for Triple-A Indianapolis with 15 homers and 76 RBIs.
He drove over from Indianapolis and joined the Phillies before the third game of their series against the Cincinnati Reds.
"I'm kind of in shock," Bowker said. "I'm pretty excited. I started the season with Pittsburgh, then I was designated for assignment. While I was in Indy, I tried to keep a good attitude. It helped to get at-bats. That was important."
The NL East-leading Phillies wanted to improve their outfield depth and their bench. Bowker will be eligible for the playoff roster. He has played right field, left field and first base.
"The scouts say he's a good hitter," manager Charlie Manuel said. "He'll give you a good at-bat and a little bit of pop. He gives us some balance. He'll definitely help us."
Philadelphia optioned reliever Michael Schwimer to Triple-A Lehigh Valley following a 9-0 win over Cincinnati on Tuesday night. The Phillies also transferred right-hander Jose Contreras to the 60-day disabled list to create an opening on the 40-man roster for Bowker.