Ryan Howard went 3 for 4 for the Phillies. Galvis, playing the outfield for the first time in his career, and Chase Utley each had a pair of hits and an RBI for Philadelphia, which had 13 hits.
The Phillies failed to draw a walk for the fourth consecutive game. Philadelphia, which entered 26th in the majors with 34 walks, is averaging 2.1 per game this season.
The Cardinals opened the scoring with a pair of runs in the fourth. Hamels walked Matt Holliday leading off and Allen Craig followed with a line drive to right field that fell in front of John Mayberry Jr., who slipped while pursuing the ball.
Molina drove home both runners with a double down the right-field line. Phillies manager Charlie Manuel came out to argue that the ball was foul.
Philadelphia tied it in the sixth on three straight hard-hit balls off Wainwright. With one out, Rollins lined a double just inside first base and scored on Galvis’ double off the center-field wall that was just out of Jon Jay’s reach. Utley added an RBI single.
Cardinals pitching coach Derek Lilliquist visited Wainwright after Utley’s hit, and the St. Louis righty induced a pair of groundouts to end the inning.
St. Louis regained the lead in the seventh on Pete Kozma’s sacrifice fly after David Freese opened the inning with a double and went to third on Jay’s sacrifice.
In the bottom half, Kratz ended an 0-for-16 slump with an RBI single. Beltran kept the score tied with an excellent catch on Rollins’ drive to right.
Galvis started in left field in place of Domonic Brown, who left Wednesday’s game against the Reds with a back injury. Brown pinch-hit in the seventh and reached on a fielder’s choice.
Manuel, hoping to get his struggling offense going, moved Revere out of the leadoff spot for the first time this season in favor of Rollins, who led off during most of his previous 13 seasons with Philadelphia. Revere, batting seventh, was 1 for 3 while Rollins was 1 for 5.