ST. LOUIS -- After shutting out the Yankees for his first career complete game, Lance Lynn had a couple of duds.
"When you have stuff like that, that's why you keep coming back," Lynn said after throwing eight innings of two-hit ball. "It's like golf. When you hit that drive like 310, that's why you come back the next time."
"I was trying to make sure my timing was where it needed to be, see the ball and get the barrel on it," Adams said. "Everything felt good."
Lynn (7-4) struck out eight with no walks against the NL East leaders, who had won 10 of 13. Trevor Rosenthal added three more strikeouts in the ninth, working around rookie second baseman Kolten Wong's two-out error on Denard Span's routine grounder for his 18th save in 21 chances.
Zimmermann gave up three hits, two of them by Adams, in eight innings. He threw 76 pitches for the lowest total in a complete game by a Nationals pitcher since the franchise relocated to Washington in 2005.
"I had a good fastball again, down in the zone, and the curveballs and sliders were there when I wanted them," Zimmermann said. "Really, it was one mistake on a changeup that was down the middle. He made me pay."
Zimmermann is 0-5 against the Cardinals and 0-2 against the Pirates, the only two NL teams he hasn't beaten.
The Cardinals have won 10 of the past 12 regular-season meetings, and beat the Nationals in the 2012 NL division series. They are 20-5 overall at home against Washington.
"They were one pitch better than we were," Nationals manager Matt Williams said. "So we'll come get them tomorrow."
Lynn retired his first 16 batters. He got some help from his defense when shortstop Jhonny Peralta went into the hole to snare Jayson Werth's one-hop liner in the fourth and threw to first to end the inning.
Jose Lobaton singled with one out in the sixth for Washington's first baserunner and took an extra base when Holliday bobbled the ball in left. But Zimmermann popped out and Span flied out to center to end the inning.
Lynn said he wasn't overly disappointed by Lobaton's hit.
"People get hits," he said. "Not everybody throws a no-hitter every time, or it would be a boring game."
Lynn is 22-9 at home for his career, and shut out the Yankees while throwing a career-high 126 pitches on May 27. He surrendered six runs in a total of 8⅓ innings in a pair of losses in his next two starts at Toronto and against the Giants.
Lynn tinkered with his delivery before facing the Nationals. The difference was control of his two-seam and four-seam fastballs.
Zimmermann threw a two-hit shutout at San Diego his last start and worked 19⅔ consecutive scoreless innings before Adams hit his fourth homer on a 1-0 pitch with two outs in the second. Adams was activated from the 15-day disabled list from a strained left calf earlier Friday and rookie Oscar Taveras was optioned to Triple-A Memphis.
The game was played in a snappy 2 hours, 3 minutes, fastest of the season at Busch Stadium.
"I wish we could do that every night," Lynn said. "You could hang out with your family a little bit more."
The Cardinals have 14 shutouts this season, most in the majors, after totaling 15 in 2013. ... The Nationals have been shut out five times. ... A pair of 2009 first-round draft picks are matched on Saturday with Stephen Strasburg (6-4, 2.99 ERA) opposing Shelby Miller (7-5, 3.59 ERA). Miller is 2-0 with a 0.50 ERA against Washington. ... All four of Adams' homers have come at home. ... Nationals 1B Adam LaRoche made two nice defensive plays, scooping up the relay on Peralta's double-play ball in the fifth and then snaring Matt Carpenter's smash in the sixth.