Mike Adams (1-1) tossed a scoreless eighth inning to help the Phillies split the four-game series. The Phillies snapped a 3-3 tie with a four-run eighth that put the game away.
Michael Young extended his hitting streak to 12 games with an infield single off reliever Mitchell Boggs (0-2). Dom Brown singled to put runners on the corners with one out. Ben Revere made it 4-3 on a go-ahead single up the middle.
Kratz then hit the first pitch deep into the left-field seats for a three-run homer and a 7-3 lead.
He also came up big in the seventh inning when he scored the tying run. He opened the inning with a single that chased Cardinals starter Jake Westbrook. Laynce Nix hit a pinch-hit double into the left-center gap off reliever Fernando Salas that made it 3-3.
The Phillies tied it quickly after St. Louis went ahead in the top of the inning.
Jon Jay scooted to second to start the inning on a two-base throwing error by second baseman Chase Utley. Utley charged the grounder and his errant throw to the right of first baseman Ryan Howard pulled him off the bag. Jay went to third on a sacrifice bunt and Carlos Beltran walked.
Chad Durbin relieved Antonio Bastardo and promptly gave up Allen Craig's RBI single that bounced over the glove of diving shortstop Jimmy Rollins to make it 3-2. Durbin left the bases loaded and stranded his first inherited runner of the season (8 of 9). Utley, long one of Philadelphia's most reliable players, had a weird game full of mental and throwing errors.
After his baserunning gaffe in the first ran the Phillies out of a scoring chance, Utley tried to atone in the sixth. His drive to center off Westbrook one-hopped over the wall for a double. Westbrook walked Young and Brown to load the bases.
There was a meeting at the mound - and whatever was said, it worked on Westbrook. He retired Revere on an inning-ending double play to escape the jam and run of the mound with the game still tied.
Westbrook struck out four and walked four in six-plus innings.
Phillies starter Kyle Kendrick struck out six, walked one and gave up eight hits in six innings. Jonathan Papelbon, one of four Philadelphia relievers, tossed a scoreless ninth.
Matt Carpenter's solo shot, his second, in the first inning gave the Cardinals the early 1-0 lead.
Jimmy Rollins, who loves swinging at the first pitch, worked a nine-pitch at bat and tripled to lead off the first. He scored on Utley's RBI single to right. Ryan Howard made it 2-1 on a sacrifice fly, scoring John Mayberry Jr., who had walked.
The Cardinals tied in the sixth with Kendrick laboring at over 100 pitches. Craig singled and Matt Adams doubled to put runners at second and third. David Freese's grounder made it 2-2.
The Phillies had 14 hits and the Cardinals 10 in a game that saw each team use five pitchers.