Updated

Travis Snider's pinch-hit grand slam in the sixth inning lifted the Pittsburgh Pirates past the Chicago Cubs, 5-4, in the opener of a three-game set at PNC Park.

Pedro Alvarez added an RBI and Neil Walker went 1-for-2 with a double, three walks and a run scored for the Pirates, winners in six of their last seven games.

Wandy Rodriguez (5-2) gave up three runs on six hits while striking out five over six innings to earn the win. Jason Grilli picked up his 18th save despite allowing a run in the ninth inning.

Matt Garza, who made his first start since July 21, 2012, carried a no-hitter into the fifth inning until giving up a base hit to Clint Barmes. It was the only hit the right-hander allowed over five scoreless frames. He also struck out five and walked three while driving in a pair with a double.

Garza missed the second half of the last season because of stress reaction in his right elbow, and his return was further delayed after the 29-year-old suffered a left lat strain in spring training.

"He was really good. He had a really good slider tonight and had really good command. When he was missing it was by just very little. He was outstanding for his first night back," Cubs manager Dale Sveum said.

Darwin Barney went 4-for-4 with an RBI and two runs scored and Starlin Castro drove in a run for the Cubs, who have dropped four of their last six games.

The Cubs pushed three runs across in the second inning to jump out to an early lead. With runners on the corners and two outs, Barney punched a base hit through the hole on the left side to score Alfonso Soriano. Garza followed with a double to right field to bring Welington Castillo and Barney around.

The Pirates scored all five of their runs in the sixth inning. Walker opened the frame with a double to right field and Garrett Jones singled to put runners on the corners. Russell Martin followed with a walk to load the bases, chasing reliever Hector Rondon from the game. Fellow bullpen mate James Russell (1-1) didn't fare much better, walking Alvarez to force in a run.

Russell was quickly replaced by Shawn Camp, who was able to get Gaby Sanchez to fly out to short left field for the second out of the inning. The Bucs called on Snider to hit for Barmes, and the lefty just cleared the fence in right-center field for his first-career grand slam.

"Camp made a mistake and left it up in the zone. I was able to get just enough of it and sneak it over the wall and come through," Snider said.

The Cubs were able to get a run in the ninth, but Grilli stranded runners on the corners to nail down the win. Barney stroked a one-out triple to left and Julio Borbon worked a two-out walk. Castro then placed a single to right field to bring Barney around.

Grilli, though, struck out Anthony Rizzo to end the game.

Game Notes

The Pirates are 25-0 when leading after eight innings this season ... Pittsburgh's starters have gone 4-0 over the last six games ... Castro has appeared in 240-conecutive games, the longest active streak in the National League ... To make room for Garza, the Cubs designated pitcher Michael Bowden for assignment. Right-hander Carlos Villanueva will move to the bullpen to accommodate Garza in the starting rotation.