PITTSBURGH -- The good news for the Chicago Cubs was that Matt Garza was nearly flawless while making his first major-league start in exactly 10 months.
The bad news was that the bullpen struggled again as Travis Snider's pinch-grand slam keyed a five-run sixth inning against three relievers and rallied the Pittsburgh Pirates to a 5-4 victory on Tuesday night at PNC Park.
Garza pitched five scoreless innings and allowed only one hit while the Cubs built a 3-0 lead.
Garza was activated from the disabled list before the game after injuring his left lat muscle in spring training. He also did not pitch after July 21 last season because of a stress reaction in his right elbow.
"He was really good," Chicago manager Dale Sveum said. "He had a really good slider. His command, for it being his first time back, was outstanding. Even when he missed, he didn't miss by much. His velocity was good, too, consistently at 93-94 mph. He was just outstanding."
The bullpen was not.
Hector Rondon retired only one of the four batters he faced and left the bases loaded for James Russell (1-1) with one out as Neil Walker doubled, Garrett Jones singled and Russell Martin walked. Russell, a left-hander, then walked left-handed hitting Pedro Alvarez to force in Walker with the first run.
Sveum called on Shawn Camp, who got Gaby Sanchez to fly out for the second out. However, Snider then batted for shortstop Clint Barmes and hit his first career grand slam into the first row of seats in right-center field to put Pittsburgh up 5-3.
Camp's blown save was the 10th by the Cubs already this season.
It was Snider's second home run of the season and the Pirates' first pinch-grand slam since Jason Michael hit one off Adam Wainwright at St. Louis in June 2008.
"Tonight was probably the calmest pinch-hit at bat I've had," Snider said. "(Manager Clint) Hurdle gave a good speech before the game, just talking about situations that come up, whether it's in the sixth inning, the first inning, the eighth inning, the ninth inning -- the game's the game and overthinking those situations isn't going to make it any easier for you if you don't get a hit."
It also helped that Snider was teammates with Camp in Toronto.
"I knew he was going to try to pitch around me as much as he could without, obviously, walking me," Snider said. "He's the kind of guy who tries to get you to chase pitches out of the zone. I got ahead of the count and was able to sit back on a changeup."
Garza was removed from the game after throwing 82 pitches. He walked three and struck out five. The most he had thrown in minor leagues in his rehab starts was 75 pitches last Thursday in six shutout innings for Triple-A Iowa.
Garza carried a no-hitter into the fifth until Barmes broke it up by lining a one-out single to right.
"I was happy with the way I pitched, but what bothers me is that I couldn't make it past the fifth inning with the pitch count," Garza said. "I'm sure the guys in the bullpen weren't expecting to have to come into that game that early and it I'm sure it was a factor in what happened (in the sixth inning)."
Wandy Rodriguez (5-4) pitched six innings and gave up three runs and six hits, raising his home record to 4-1 this season with his fourth consecutive quality start. He had five strikeouts and no walks.
Jason Grilli got through a rough ninth for his National League-leading 18th save in as many chances, allowing the Cubs to cut the gap to 5-4 on Starlin Castro's two-out single that scored Darwin Barney, who had tripled to cap a 4-for-4 night. Grilli struck out Anthony Rizzo with runners on the corners to end it.
Jordy Mercer went 2 for 2 and was the only Pirates player with multiple hits despite not entering the game until the sixth as a pinch-hitter.
Alfonso Soriano added two hits for Chicago.
Garza also helped the Cubs with his bat as his two-run double capped a three-run second that broke a scoreless tie.
Soriano led off with a single and moved to third on Wellington Castillo's one-out double. One out later, Barney drove home Soriano with a single and then Garza lined a two-run double to right field.
"Wandy's a real pro," Hurdle said. "No one wants to get clipped by the bottom of the batting order and he gave up three runs in the blink of an eye. He held fast after that, though. He did a great job of keeping us in the game."
NOTES: Chicago designated RHP Michael Bowden for assignment to clear a roster spot for Garza. Bowden was 1-2 with a 3.78 ERA in 13 games. ... The Cubs claimed RHP Eduardo Sanchez from St. Louis and optioned him to Triple-A Iowa. He had one save and a 3.72 ERA in nine games with Triple-A Memphis. ... Pittsburgh activated RHP Jose Contreras from the bereavement list and optioned RHP Jared Hughes to Triple-A Indianapolis. ... Pirates CF Andrew McCutchen returned to the lineup after missing Sunday's game against Houston with a sore right knee. ... Pittsburgh LF Starling Marte, who is 6 for 34 (.176) in his last eight games, did not start but entered as a defensive replacement in the seventh inning while OF Jose Tabata started in left. ... Pirates RHP Charlie Morton (Tommy John reconstructive elbow surgery in June 2012) pitched 4 2/3 innings in a rehab start for Double-A Altoona on Tuesday night and allowed two runs and four hits with two walks and three strikeouts while throwing 80 pitches in an Eastern League game at Reading. He is expected to make one more minor-league start and then be re-evaluated. ... Chicago RHP Jeff Samardzija (2-5 3.49) will start Wednesday night against LHP Francisco Liriano (2-0, 1.64).