Michael Wach lost a no-hit bid in the ninth inning for the second time in his career, denied when pinch-hitter Colin Moran led off with a single Sunday in the Cardinals' 5-0 win over the Pittsburgh Pirates.
As a rookie in 2013, Wacha was one out away from a no-hitter when Washington's Ryan Zimmerman got an infield single.
Wacha (7-1) came close to pitching the fourth no-hitter in the major leagues this season. He was in control, striking out eight and walking two while mixing his fastball, curve and change.
Bud Smith was the last St. Louis pitcher to throw a no-hitter, doing it as a rookie in 2001 at San Diego. The last Cardinals pitcher to toss a no-hitter at home was Bob Forsch in 1983 against Montreal.
Wacha retired the first 13 batters, and the closest the Pirates had come to a hit was Josh Bell's flyout to the warning track in the second inning until the ninth.
Moran fouled off the first three pitches before the Pirates rookie lined a clean single well over the head of second baseman Kolten Wong into right field.
The hit signaled the end for Wacha, and the 26-year-old was pulled after 111 pitches - 119 is his career high. The crowd of 44,432 at Busch Stadium gave Wacha a standing ovation, and he received hugs from his teammates in the dugout.
Reliever Jordan Hicks gave up one hit while getting the last three outs.
Marcell Ozuna hit a grand slam on the eighth pitch of the game from Nick Kingham (2-2). In April, Kingham took a perfect game into the seventh inning against St. Louis in his big league debut before it was broken up.
The Cardinals have won three of four. Pittsburgh has lost three of four.
Wacha has allowed two runs or less in his last nine starts. He was the MVP of the 2013 NL Championship Series and an All-Star in 2015 before he was slowed by injuries. He made only had 24 starts in 20016 because of a shoulder inflammation.
Matt Carpenter drew a leadoff walk in the first, Tommy Pham singled and Jose Martinez reached on an error by shortstop Sean Rodriguez. Ozuna then hit his fourth career-grand slam.
Carlos Martinez (3-2, 1.62) will start the first of a three-game series at home against Miami RHP Jose Urena (0-7. 4.41) on Tuesday.