"Morton pitched a fantastic game," Pirates manager Clint Hurdle said after the right-hander allowed one hit in seven innings of a 2-0 loss Monday night. "Man, it was fun to watch him work. We couldn't touch the plate."
Matt Adams hit a two-run home run in the bottom of the ninth inning for his first career game-winning hit in the opener of a four-game series with the NL Central rival they topped in the division series last fall.
Morton didn't seem to mind ending up with no-decision, he had his hands full against Cardinals ace Adam Wainwright.
"I don't really pay attention to past success or failure," Morton said. "I just come here and study the hitters a little bit and try to make some pitches.
"I've got to go out there and keep my team in the game."
Matt Carpenter walked to lead off the ninth and Matt Holliday flied out. Adams then hit his 10th homer on an 0-1 breaking ball from Justin Wilson (2-1). It was the Cardinals' first game-winning homer since Skip Schumaker connected against the Kansas City Royals on June 19, 2011.
The homer was the first allowed by Wilson in 33 innings this season.
The Pirates stranded 12 runners and were 0 for 10 with runners in scoring position but were frustrated by Wainwright, who leads the National League with 11 wins and a 1.79 ERA, and the St. Louis bullpen. Wainwright scattered seven hits in seven scoreless innings.
"I don't think he probably had his 'A' command, and we did get some good looks," Hurdle said. "To get his pitch count where we did after seven innings, we did everything we wanted to do on offense except for touch home."
Pat Neshek (3-0) worked a perfect ninth against the top of the order for St. Louis.
The game lasted 2 hours and 37 minutes but was extended by two rain delays totaling 58 minutes.
Morton remained 2-10 for his career against the Cardinals although he reduced his ERA to 5.58. He was lifted in the eighth when the Pirates loaded the bases with two outs. Sam Freeman struck out rookie pinch-hitter Gregory Polanco.
"It might not be logical to you, it was kind of logical to me," Hurdle said. "We got the bases loaded. I thought our better opportunity was to send somebody up other than Charlie."
The Cardinals squandered a chance in the eighth when Jon Jay was doubled off second after pinch-hitter Oscar Taveras lined out to right.
The Pirates had runners in scoring position five times against Wainwright, who has thrown 14 2-3 scoreless innings his last two outings. He was particularly tough on fellow All-Star Andrew McCutchen, who tapped out to end the fifth to waste Starling Marte's triple and flied out with two on to end the seventh.
Right fielder Josh Harrison, chosen by Cardinals manager Mike Matheny as an All-Star reserve on Sunday, made an outstanding diving catch to rob Jhonny Peralta of a hit in the second.
Rain — or the threat of it — was a dominant factor early with the grounds crew ever on alert. The start was delayed 47 minutes with the tarp down in anticipation of a storm and ominous clouds looming but no precipitation,
It was halted 11 minutes by heavy rain after the Pirates stranded two in the first. Some Pittsburgh players began running off the field when a second brief storm hit just before the game resumed and crew chief Joe West appeared ready to call another halt before dropping his arms and retreating to first base.
Plate umpire Alan Porter made a rarely seen call in the first after Russell Martin was plunked in the arm, ruling that Martin hadn't made an attempt to get out of the way. Instead of loading the bases with two outs, the pitch was simply ball three for a full count and Martin flied out.
NOTES: McCutchen was a career .382 hitter against Wainwright before Monday. ... Gerrit Cole (oblique) was scratched from his scheduled start Wednesday against St. Louis and Hurdle said he will be placed on the 15-day DL. Cole threw in the bullpen earlier Monday. "He wants to pitch, he wants to compete, he's such an aggressive kid," Hurdle said. "The risk, I don't think, is worth the reward for this particular start." ... Vance Worley (2-1, 2.28) opposes rookie Carlos Martinez (2-3, 3.91) on Tuesday.