ST. LOUIS (AP) Jaime Garcia was disappointed he didn't finish what he started.
But not that disappointed.
Garcia pitched shutout ball into the ninth inning and Matt Carpenter homered, leading the St. Louis Cardinals over the Miami Marlins 3-1 Friday night.
Garcia (5-4) came within two outs of throwing the first complete game of the season for the NL Central leaders. He gave up six singles, walked one and struck out six.
''I wanted to finish it off,'' he said. ''All I knew was that I was not ready to come out after the eighth. But it's a W, a big one for the team.''
Though shoulder injuries ended Garcia's past two seasons and he's been on the disabled list twice this season, he's been effective when he has taken the mound. He lowered his ERA in 11 starts to 1.57.
''The bottom line is, I'm healthy,'' Garcia said.
Marlins manager Dan Jennings was impressed.
''Nothing overpowering, but he mixes and matches has a lot of different pitches,'' he said. ''He did a good job keeping us off-balance.''
Trevor Rosenthal got his 36th save in 38 chances.
Carpenter's bunt single broke a scoreless tie in the fifth. He hit a solo home run in the eighth.
''I knew if I could get a bunt down, nobody was expecting it,'' Carpenter said. ''I figured that was our best chance at that point and went for it.''
Tom Koehler (8-10) took the loss and Miami's three-game winning streak ended.
Ichiro Suzuki singled in the Miami fifth for his 2,913th hit in the major leagues. Combined with 1,278 hits in Japan, he equaled Ty Cobb's total of 4,191. Cobb held the big league mark that Pete Rose eventually passed on his way to a record 4,256 hits.
Garcia took a 3-0 lead into the ninth and began the inning by striking out Martin Prado. Garcia then hit Derek Dietrich with a pitch and walked Casey McGehee, bringing Rosenthal from the bullpen.
The Marlins scored an unearned run when Cole Gilliespie singled and right fielder Jason Heyward mishandled the ball for an error.
''The hit batsman and walk put us in a bind,'' Cardinals manager Mike Matheny said. ''You want to leave your closer a little room.''
Garcia retired the first nine batters. After Dee Gordon singled to lead off the fourth, Garcia picked him off. Garcia did not allow a runner into scoring position until the seventh.
Carpenter hit his 18th home run. Mark Reynolds doubled and scored on Carpenter's bunt with two outs, and added an RBI single in the seventh.
Marlins: OF Christian Yelich (bruised knee) was not in the lineup for the third straight game and might not play in the series. He said he was lacking mobility.
Cardinals: 1B Matt Adams (quad surgery) impressed the club in a running drill and continues to inch toward a rehab assignment. He was expected to miss the season when he was injured May 26.
Marlins: Brad Hand (2-2, 4.29) has allowed one run in 11 innings since rejoining the rotation.
Cardinals: RHP John Lackey (9-7, 2.91) will go for his 12th consecutive quality start Saturday. All 17 starts he has made at Busch Stadium since he was traded last year have qualified as quality.