PITTSBURGH -- The Milwaukee Brewers' playoff push was slowed by a nemesis.
"He's impressive. He has a really good game plan and he executes it," Brewers manager Craig Counsell said. "He doesn't miss in the middle of the plate. He doesn't give you many good pitches to hit. Our guys would tell you they probably got one good pitch to hit each -- and that was in three at-bats."
Seeking to reach the postseason for the first time since 2011, the Brewers had their NL wild-card lead cut to two games over St. Louis. Milwaukee also dropped to 2 1/2 games behind the Chicago Cubs in the NL Central with seven games left.
The Brewers and Cardinals open a three-game series Monday night in St. Louis. Milwaukee does not play the Cubs again.
Milwaukee never got a runner past second base and was shut out for the 12th time this season, but just the second time since the All-Star break. The Brewers were blanked six times in April.
Williams (14-9) gave up four hits in six innings, struck out seven and walked one, improving to 4-0 in his last six starts. He has pitched 19 scoreless innings in three outings against the Brewers this season and is 3-1 with a 1.38 ERA in six career games against them. He is 4-2 with a 0.86 ERA in his last seven home starts.
Williams pitched six innings of two-hit ball at Milwaukee last Sunday and was worried about facing the same team in consecutive starts.
"I know they've seen four other pitchers between me, but it always feels like the hitting team has the competitive advantage when you see someone so close," Williams said. "I think we executed fine with the fastball to all four corners of the strike zone."
Rich Rodriguez, Kyle Crick and Felipe Vazquez followed with one inning each. Vazquez worked around Christian Yelich's leadoff double in the ninth for his 36th save in 41 chances. Pittsburgh's 16 shutouts are one behind Detroit, the major league leader.
Zach Davies (2-7) gave up two runs and four hits in four innings. He is 0-2 in four starts since being sidelined from May 30 to Sept. 2 by inflammation in the rotator cuff of his right shoulder. Davies also fell to 2-5 in his career against Pittsburgh.
Davies retired the first two batters in the third before Williams and Adam Frazier singled to keep the inning alive for Marte.
"I wouldn't really change anything about the inning," Davies said. "The pitches to each guy were executed and they found the barrel of the bat. With Marte, the ball was probably four inches inside. I wanted to go in off the plate but maybe not enough. He saw it, went after it and maybe got a little lucky but that's baseball."
Pittsburgh won for the sixth time in seven games but trails St. Louis by 7 1/2 games for the second NL wild card with nine games left.
Moran, Frazier and Corey Dickerson each had two of the Pirates' 10 hits.
Milwaukee has three players with at least 30 home runs -- Jesus Aguilar (33), Yelich (31) and Travis Shaw (30) -- for the second straight season but just the third time in franchise history. The Brewers' 203 homers are the fifth-most in franchise history. The record is 231 in 2007.
MARTE NEARS MILESTONE
Marte needs one home run to become the third player in Pirates' history to have at least 20 homers and 30 stolen bases in the same season. Barry Bonds did it four times, in 1987 and from 1990-92, and Andy Van Slyke pulled off the feat in 1987 and 1988.
Brewers: CF Lorenzo Cain (right ribcage soreness) did not start for a third straight game but grounded out as a pinch-hitter in the eighth inning. He could return to the lineup Sunday.
Pirates: RHP Joe Musgrove (stress reaction in pelvic bone/strained abdomen) was scratched from his scheduled start Sunday and will not pitch again this season. Musgrove said he first felt pain in his last start before the All-Star break in July. He finishes 6-9 with a 4.06 ERA in 19 starts. ... C Francisco Cervelli (gastrointestinal discomfort) did not play after leaving Friday night's game in the sixth inning.
Milwaukee LHP Wade Miley (5-2, 2.08 ERA) has won his last three starts with a 1.69 ERA going into Sunday. RHP Nick Kingham (5-6, 4.69 ERA) will make his first start since Sept. 2 in place of Musgrove.
More AP MLB: https://apnews.com/tag/MLB and https://twitter.com/AP-Sports
Jackie Bradley Jr. recaps Boston's 8-6 win in Game 4 and previews facing Justin Verlander with a shot of punching a ticket to the World Series.
The dire moments are casually familiar for Houston Astros right-hander Justin Verlander, who many seasons ago assumed the responsibility bestowed upon a staff ace.
From Andrew Benintendi's game-saving catch to another big homer by Jackie Bradley Jr., there were plenty of heroes in Boston's Game 4 thriller.
The Baseball Tonight crew previews the ALCS Game 5 pitching matchup, with David Price pitching for the Red Sox against the Astros' Justin Verlander.
Andrew Benintendi breaks down the approach on his game-winning catch, saying he was committed to diving no matter what.
Astros manager AJ Hinch discusses his team being down 3-1 and how he has full confidence in his team to come back in this series.