Nick Punto congratulates Lance Berkman after his game winning hit. UPI/Bill Greenblatt

Jaime Garcia pitched well enough for his sixth win, but a defensive lapse cost him that shot. However, in the bottom of the ninth, Lance Berkman singled in the winning run for a 2-1 Cardinals win over Philadelphia.

Second baseman Tyler Greene, a defensive replacement in the seventh, muffed Jimmy Rollins’ popup, and Rollins later scored on a sacrifice fly by Placido Polanco to tie the game at 1-1.

Garcia is 5-0 with a 1.64 ERA, tying for the National League lead, and has given up only one earned run on 15 hits in 31 innings at home. Fernando Salas (2-0) picked up the win.

Ryan Theriot, Jon Jay and Albert Pujols opened the ninth with three straight singles off Danys Baez. Matt Holliday, in an 0-for-13 slump, grounded into a forceout at the plate with the infield in before Berkman lined J.C. Romero’s first pitch over the head of center fielder Mike Martinez.