Wasdin took the loss, falling to 0-1. Brad Thompson got the win with two innings of relief for St. Louis, and closer Jason Isringhausen picked up save No. 3.
"We had opportunities, obviously, to put more than two runs on the board tonight," Pirates manager Jim Tracy said. "We weren't able to do it, and when you get in the position that we were in -- obviously in the ninth inning -- the game is far from being over. They're sending the top of their order up there and they got the two runs. We had two additional opportunities to do something in extra innings, and we were unable to come up with the hit.
The Pirates stranded 10 baserunners in the game.
Gorzelanny tossed seven scoreless innings and gave up four hits, while notching five strikeouts, but received a no-decision for his effort.
"Gorzelanny was terrific," Tracy stated. "He was really good -- I saw him pitch a game last year that was comparable to this, but by far and away, this was the best fastball command that he's had since we started Spring Training. He had all three pitches tonight; he had fastball, slider and changeup. He used them effectively; he used his pitches tonight like Ian Snell and Braden Looper did yesterday. They didn't get too many good swings off of him."
Gorzelanny was pleased with his effort.
"I felt I pitched well," he said. "A couple of times I had trouble and was getting behind guys. I stuck in there and tried to throw my best pitches out there. I got them to swing at good pitches, and that's basically what I had them doing tonight."
The Cardinals got a solid start from lefty Randy Keisler, who was called up from Triple-A Memphis to replace injured Chris Carpenter in the rotation.
The 30-year-old Keisler signed with St. Louis during the offseason as a free agent. He had a 4.50 ERA in 11 games last season with the Athletics. He hurled six innings and was tagged for two runs on five hits. He got a no-decision because of the Cards' late-inning rally.
The Pirates took a 1-0 lead in the bottom of the fifth inning on Jose Bautista's first home run of the season.
The Bucs increased their lead to 2-0 in the sixth inning. Freddy Sanchez doubled to right-center and scored on Jason Bay's RBI single.
The runs Pittsburgh scored snapped a scoreless streak of 21 innings for St. Louis starting pitchers.
After Matt Capps pitched a scoreless eighth inning, Bucs closer Salomon Torres ran into trouble in the ninth. A single by David Eckstein and a walk to Chris Duncan put the Cards in business. Scott Spiezio lashed a one-out, two-run single to right, tying the score. It was the first blown save of the year for Torres who had been a perfect 4-0.
"That's a hard-earned save obviously if he gets it," Tracy explained. "Due to the fact of what I said earlier, there was an opportunity for us to score more than two runs tonight and we didn't do it. When you get in a situation in the ninth inning with the guy who hits third for them, he's going to come to the plate once Eckstein reached. Obviously, they're in a position to do some things, and they got the two runs to extend the game."
Gorzelanny felt the game played out the way they wanted with Torres trying to close it out.
"I've always considered Salomon to be automatic," Gorzelanny stated. "A hundred times more I would take that same situation. We all feel that he's a great closer -- it's just baseball. It happens and things happen, and you've got to just keep moving on. He's going to be there, and he's going to be good. We're very confident in him."