Kelly allowed hits to three of the Cubs' first four batters. David DeJesus singled to start the game, followed by Starlin Castro's double. Both scored on Alfonso Soriano's two-run triple that bounced around the left-field corner and got away from Matt Holliday. It was Soriano's first triples since last Aug. 11.
Kelly set down the next 14 batters, including four straight strikeouts at one point. He struck out a career-best six.
Samardzija's control problems returned in the sixth, when St. Louis loaded the bases on a pair of walks and a broken-bat single by Yadier Molina. Daniel Descalso tied the score at 2 with a sacrifice fly to deep right.
Samardzija finished with seven strikeouts in six innings but walked six, the second-most in his career. He walked seven against the Cardinals on Sept. 26, 2010 at Wrigley Field.
NOTES: Cardinals 3B David Freese was held out of the starting lineup for the second straight day after leaving Thursday's win over the Dodgers because of cramping in his right calf. He was available for pinch-hitting duty on Saturday and manager Mike Matheny expects him to return to the lineup for Sunday's series finale. ... Cubs RHP Matt Garza reported no problems after throwing off flat ground on Saturday. He is slated to throw a bullpen session on Monday and if that goes well, he is in line to make his next start in the latter part of next week. Garza left his last outing on July 21 because of cramping. An MRI showed a small trace of fluid buildup in his right triceps. ... Cubs manager Dale Sveum was ejected after the seventh inning by 1B umpire Mike Winters for arguing that Castro had beaten out an infield hit with the bases loaded.