Price (10-4) surrendered only one run on four hits, striking out eight en route to his fourth victory in five appearances.
The left-hander worked around three walks in the 112-pitch effort, helping the Rays break a three-game losing streak and evening their three-game interleague road series.
Burke Badhenhop allowed a run in eighth but Jake McGee got the Rays out of a bases-loaded, two-out jam by inducing Michael Martinez to pop out, and Fernando Rodney held on for his 21st save to nail down the victory.
Pena's three-run blast in the eighth off Anthony Bastardo (2-2) erased a 1-0 Rays deficit.
Phillies starter Cole Hamels tossed seven shutout innings in the no-decision, yielding only three hits while striking out seven.
Jimmy Rollins went 3-for-5 with a solo homer in the loss.