ST. LOUIS (AP) -- It's been 21 years since the St. Louis Cardinals pitched a no-hitter.
Miles Mikolas needed one more strike.
The right-hander didn't give up a hit until Cal Mitchell doubled with two outs in the ninth inning Tuesday night, and the St. Louis Cardinals routed the Pittsburgh Pirates 9-1 to sweep a doubleheader.
"I'm a little over it. I mean it stinks, to get that close and then kind of come up empty-handed," Mikolas said. "That's a great outing. I'll be real proud that I gave the bullpen kind of another night off. I know we need it with the doubleheader. I'm happy -- but deep down it kind of stinks."
Mitchell drove a 2-2 curveball over the head of Gold Glove center fielder Harrison Bader and just beyond his outstretched mitt as the speedy Bader tried to make a running catch with his back to home plate.
"If he can't get it, nobody can -- except maybe one of those guys in the stands when they have that like 3-foot glove, maybe that guy," Mikolas said. "We're playing shallow so they don't kind of doink one in. I think that's what you're always guarding against is you don't want to lose it cheap. The guy hit a ball to the track, I'll give it to him. And it was a good pitch. I'm more OK with that then if the dude bloops a broken-bat bleeder in there somewhere."
The ball bounced on the warning track 383 feet from the plate and over the wall in straightaway center for a ground-rule double.
"It went to the left of my glove, kind of curled back," Bader said. "I was working really hard to try to make up some ground. So yeah, just sucks. But it is what it is."
The hit came on the 129th pitch from Mikolas -- most in the majors this season and 14 more than his previous career high set May 29 against Milwaukee. He was lifted for Packy Naughton, who got the final out to hand the Pirates their ninth straight loss.
The 33-year-old Mikolas (5-4) bent over at the waist for a moment when Mitchell's drive dropped. He struck out six, walked one and left to a standing ovation.
Mitchell entered in the seventh to play right field and got Pittsburgh's lone hit in his only at-bat of the game.
The most recent no-hitter for the Cardinals was thrown by rookie Bud Smith in a 4-0 win at San Diego on Sept. 3, 2001. The last one at home came from Bob Forsch in 1983.
"Normally I'm talking to guys in the dugout asking them about pitches, like where they were, what they thought, and I didn't even bother asking them because nobody would turn to look at me," Mikolas said. "So, that's one of the things that kind of stinks about that is I'm kind of sitting there all by myself all game and, you know, watching Mad Dog (pitching coach Mike Maddux) like pace back and forth. I know he wants to say something, but can't. It's one of those superstitions."
Pittsburgh got an unearned run in the fourth to make it 7-1 when Bryan Reynolds scored on Daniel Vogelbach's groundout.
Reynolds led off the inning and reached second base when left fielder Juan Yepez misplayed a fly ball for an error. Reynolds advanced to third on a groundout.
Cardinals second baseman Nolan Gorman made a diving stop in the fourth and an off-balance throw from the middle of the diamond in the sixth to prevent would-be hits.
"The stars were lined up for 8 2/3 today and then, you know, they weren't," Mikolas said.
Mikolas worked a 1-2-3 seventh with the help of a nice catch by Bader at the center-field fence on Jack Suwinski's drive. Pittsburgh also went down in order in the eighth.
"He mixed and matched," Pirates manager Derek Shelton said of Mikolas. "You saw it even in the at-bat to Mitchell, he went back and got 95 (mph) on the 2-0 pitch. The breaking stuff was really effective."
Mikolas, who reinvented himself in Japan before becoming a big league All-Star in 2018, has struggled through injuries the past few seasons. He had never gone longer than four innings in a major league start without allowing a hit.
"There's a lot of perseverance in that story," Cardinals manager Oliver Marmol said. "He's doing an unbelievable job, he's going about it really well, and this is a healthy Miles and it's fun to watch."
Paul Goldschmidt was 4 for 4 with two homers and five RBIs for the Cardinals, who have won five of six. Tommy Edman also went deep and Brendan Donovan had his first career four-hit game.
Bryse Wilson (0-4) gave up seven runs in five innings for the Pirates.
Goldschmidt homered off JT Brubaker (0-7) and drove in three runs as St. Louis won 3-1 in the opener of the day-night doubleheader.
Yadier Molina had 11 putouts on 10 strikeouts and a foul popup, and with 14,870 passed Iván Rodríguez (14,864) for most among catchers in major league history. The 39-year-old, a 10-time All-Star, was given a standing ovation with the record-setter when he caught Ke'Bryan Hayes' sixth-inning popup.
Pittsburgh committed four errors, three by shortstop Diego Castillo -- including bad throws on grounders on consecutive pitches. He had just two errors coming in.
Matthew Liberatore (2-1) allowed three hits in five scoreless innings, striking out five in his fourth big league starts. The 22-year-old left-hander, pulled after 79 pitches, has pitched shutout ball in both his wins, the first against Milwaukee on May 28.
Giovanny Gallegos worked a one-hit ninth for his ninth save in 12 chances, finishing a seven-hitter.
Yu Chang homered for Pittsburgh off Génesis Cabrera in the seventh.
WELCOME TO THE SHOW
Canaan Smith-Njigba pinch-hit for Pittsburgh in the ninth inning of the opener and doubled in his major league debut. His younger brother, Jaxon, was MVP of this year's Rose Bowl as a wide receiver for Ohio State.
Donovan, who led off for the Cardinals in the opener, has appeared in all nine lineup spots this season. He has played all four infield positions plus right and left field.
THE MACHINE KEEPS RUNNING
Albert Pujols played his 1,340th game at first base, tying Jim Bottomley for most in Cardinals history. It was also his 1,739th game with the Cardinals, passing Curt Flood for seventh-most in franchise history.
Pirates: RHP Heath Hembree (right calf strain) was activated from the injured list. ... RHP Duane Underwood Jr. was placed on COVID-19 injured list Monday.
Cardinals: LHP Steven Matz (left shoulder impingement) received an injection in his AC joint after playing catch and plans to throw again on flat ground Wednesday.
Cardinals RHP Jack Flaherty (right shoulder) will make his season debut in Wednesday night's series finale rather than make a third minor league rehabilitation start. He is expected to have a limit of about 60 pitches. RHP Roansy Contreras (1-1-, 2.57) pitches for Pittsburgh.