The Phillies halted a four-game losing streak.
St. Louis tied the game with two runs in the seventh, but Howard put Philadelphia back in front with his 25th homer of the year, a lead-off shot to right.
Perez struck out the first two batters he faced before giving up a home run to Feliz.
Clay Condrey (2-1) got the win with an inning of relief and Brad Lidge picked up his 20th save.
Philadelphia's J.A. Happ, making his third career major league start, did not factor in the decision but gave up just two runs on five hits over 6 1/3.
Mark Mulder made his first start of the season for the Cardinals after battling shoulder problems for the last two years. He lasted only a third of an inning, however, before leaving the game with shoulder discomfort.