Jaime Garcia is at his best when he pitches low in the strike zone.
The Pittsburgh Pirates found that out Saturday when Garcia (8-4) held them without a run for seven innings and struck out a season-high nine to lead the St. Louis Cardinals to a 4-1 victory.
The win pushed the Cardinals' lead in the NL Central back to 6 1/2 games over Pittsburgh.
More from FoxSports
"I was able to keep the ball down," said Garcia, who lowered his ERA to 1.89 and won the 50th game of his career. "I felt good the whole game. It was a big win for us."
Garcia missed the first six weeks of the season recovering from season-ending surgery in 2014 to relieve nerve compression. In 15 starts, he has allowed four or more runs once. That was last Sunday in San Francisco.
Against the Pirates, Garcia let only one runner reach third, and Sean Rodriguez had three of the four hits allowed by Garcia.
"He challenges your discipline as much as anything," Pirates manager Clint Hurdle said. "He had us out in front, we had a lot of chases and not a lot of hard contact. He controlled our bat speed."
The Cardinals took a 2-0 lead in the second without the ball leaving the infield against Charlie Morton (8-7). Morton walked two and hit Jon Jay to load the bases. With two out, Stephen Piscotty hit a grounder up the middle that took a high hop near second base and forced Josh Harrison into a rushed throw, which got past first base and allowed both runners to score.
"My read was either I'm going to trip over the bag or the ball's going to hit it," Harrison said. "The ball must have hit one of those funky spots and you try to make a do-or-die play. It was a chopper that happens once in a blue moon and I guess today it was a blue moon."
Harrison was charged with an error while Piscotty was credited with one RBI and a single that extended his hitting streak to 12 games. The streak is the longest on the team this season and longest by a Cardinals rookie since Jay hit in 12 straight in 2010.
"I was kind of shocked to see where he was playing me," said Piscotty of a shift that had Harrison playing almost directly behind second base. "When I hit it, I thought it was up the middle. When I saw where he was, I put my head down and ran."
Matt Carpenter pushed the Cardinals' lead to 4-0 when he hit his 21st homer with a runner on in the seventh. Carpenter said shadows that crept onto the field made had hitting tough earlier in the game.
The Pirates used a string of pinch hitters to rally in the ninth against Trevor Rosenthal. Pedro Alvarez singled to score Neil Walker with two out in the ninth before Rosenthal struck out Gregory Polanco with two on to end the game.
A sellout of 45,139 pushed the Cardinals over the 3 million attendance mark for the 10th time in the 10-year history of Busch Stadium and the 19th time in franchise history
CHOATE TURNS 40
The Cardinals recognized LHP Randy Choate's 40th birthday by wearing T-shirts commemorating the occasion before the game. Choate said he wants to play at least five more years.
Cardinals: 1B Matt Adams (right quad) went through a running drill at close to 100 percent as he inched toward a return from May 29 surgery.
Pirates: RHP Gerrit Cole (15-8, 2.64) gave up five runs and lasted four innings in his worst start of the season Tuesday at Milwaukee. Cole went 5 1/3 innings and lost 4-2 at Busch Stadium last month.
Cardinals: RHP John Lackey (11-8, 2.87) will be trying for his 15th consecutive quality start at Busch Stadium this season. The Cardinals have gone 11-3 and Lackey owns a 1.89 ERA in at home.