PITTSBURGH -- Anthony Rizzo hasn't had a whole lot of reason to feel good about himself this season, particularly in the second half.
However, the first baseman had a shining moment Friday night as his two-run home run in the seventh inning rallied the Chicago Cubs to a 5-4 victory over the Pittsburgh Pirates at PNC Park.
"It feels good," Rizzo said. "It was definitely one of my better home runs this year."
The Pirates entered the day tied for first place in the National League Central with the St. Louis Cardinals, who hosted Seattle on Friday night.
Rizzo connected off Jason Grilli to turn a one-run deficit into a one-run lead as the Cubs snapped the Pirates' four-game winning streak. The 24-year-old Rizzo, who signed a seven-year, $41-million contract earlier this season, had just one hit in his previous 21 at-bats and was hitting .202 since the All-Star break when he belted his 22nd home run of the season into the right-field stands with two outs.
"It's huge for him," Cubs manager Dale Sveum said. "Hopefully it carries into these last couple of weeks. He came back and hit a line drive again his next time up and I don't think he's had back-to-back at-bats like that in a while."
Grilli (0-2) has converted 30 of 31 save opportunities this season but has been working in set-up relief since coming off the disabled list Sept. 3 after missing six weeks with a right forearm strain. Grilli struck out the first two batters in the seventh but then walked Luis Valbuena before Rizzo homered.
"He's an All-Star closer coming in the seventh. That says a lot about their team and what a great bullpen they have," Rizzo said. "He threw me a slider down and in, a pretty good pitch, and I tried to just put a good swing on the ball and not try to do too much."
Grilli has pitched four times since coming off the DL and given up one run in 2/3 of an inning in each of his last three games.
"He's so close," Pirates manager Clint Hurdle said. "We need to keep him in play. This is another time where there's two outs and he's one pitch away from getting out of the inning and weren't able to put away Valbuena and that one ended up hurting."
The Pirates had taken a 4-3 lead in the sixth when Andrew McCutchen led off with a double and scored on an error by starting pitcher Jake Arrieta, who dropped the feed from Rizzo on a ground ball by Pedro Alvarez.
In the fourth, the Pirates hit three consecutive home runs for the first time in 10 years as Alvarez, Russell Martin and Garrett Jones connected with two outs off Arrieta.
Brian Bogusevic had three hits, including a two-run home run in the fourth inning that put the Cubs ahead 3-0. Rizzo and Dioner Navarro added two hits each.
Carlos Villanueva (6-8), who got the last out in the sixth inning, was the winning pitcher. Kevin Gregg pitched a scoreless ninth for his 32nd save in 37 opportunities, getting Neil Walker to fly out to the warning track in center field with a runner on first base to end the game.
McCutchen, who extended his hitting streak to 11 games, had two hits for Pittsburgh along with Jose Tabata and Alvarez.
Both starters lasted five innings. Arrieta allowed four runs -- three earned -- and six hits while the Pirates' Charlie Morton gave up three runs and four hits.
Pittsburgh hit its back-to-back-back home runs with two outs in the fourth inning to tie the score at 3-3.
Alvarez started the barrage when he hit an inside-the-park homer, the first of his career. The ball bounced high off the fence in right-center, over the outstretched glove of center fielder Mark Sweeney.
It was Alvarez's 33rd homer of the season, the most in the National League, and the first inside-the-park homer by a Pirates player since Alex Presley hit one on April 20, 2012.
Martin followed with a drive into the left-field bleachers, and then Jones hit a blast to center field. It was the 14th home run of the season for both and marked the first time the Pirates hit three homers in a row since Aug. 20, 2003, at St. Louis when Jason Kendall, Brian Giles and Reggie Sanders went deep.
The Pirates last hit three consecutive home runs in Pittsburgh on July 6, 1955, in the first game of a doubleheader against the Brooklyn Dodgers. Jerry Lynch, Frank Thomas and Dale Long connected at Forbes Field.
"When guys go back-to-back-to-back, they've got to put good swings on them and I've got to tip my cap to them," Arrieta said. "They weren't necessarily bad pitches but they hit them. It was the only blemish on the outing. I was real crisp. I had four good pitches working and was changing speeds. I think overall that I threw the ball well.
"It was just a really good ballgame all the around on both sides."
NOTES: Pittsburgh RF Marlon Byrd was rested after starting each of the first 15 games since being acquired Aug. 27 in a trade with the New York Mets but did pinch hit in the sixth and stayed in the game. ... Chicago LF Junior Lake was not in the starting lineup and his nine-game hitting streak ended in the seventh inning when he struck out. ... Morton, who entered the game with a .143 batting average, had an 11-pitch plate appearance against Arrieta in the third inning. Justin Morneau had a 12-pitch at-bat in the fourth, but both ended up bouncing out to the pitcher. ... Cubs RHP Scott Baker (0-0, 0.00) will face Pirates RHP Gerrit Cole (7-7, 3.48) on Saturday night in the third game of the four-game series.