PITTSBURGH -- Anthony Rizzo's miserable second half perked up with one massive swing of the bat.
The first baseman slugged a towering go-ahead, two-run homer off Jason Grilli in the seventh inning and the Chicago Cubs rallied past the Pittsburgh Pirates, 5-4 on Friday night.
Rizzo entered the night hitting just .208 since the All-Star break but turned on an 83-mph slider from Grilli and sent it over the seats in right field to snap Pittsburgh's four-game winning streak.
"It's huge for him," Chicago manager Dale Sveum said. "Hopefully it carries into these last couple of weeks."
Brian Bogusevic went 3 for 4 with his fifth homer of the season for Chicago. Dioneer Navarro added two hits as the Cubs blunted Pittsburgh's momentum as the Pirates chase their first playoff berth in 21 years.
Carlos Villanueva (6-8) picked up the win in relief. Kevin Gregg collected his 32nd save when center fielder Ryan Sweeney tracked down Neil Walker's fly ball in front of the wall in the ninth.
Pedro Alvarez, Russell Martin and Garrett Jones hit consecutive solo home runs in the fourth for Pittsburgh. Andrew McCutchen went 2 for 4, but the Pirates lost for just the fourth time in 65 games when leading after six innings this season when Grilli (0-2) faltered.
Grilli, an All-Star after racking up 29 saves in the first half of the season, is still working his way back from a strained forearm that sidelined him for more than six weeks. Pittsburgh manager Clint Hurdle moved Grilli into a middle relief role when he was activated off the 15-day disabled list earlier this month.
Pitching in his first pressure situation since his return, Grilli entered with the Pirates up a run in the seventh. He nearly got out of the inning clean, but Luis Valbuena walked on a borderline 3-2 pitch. Rizzo followed taking a pitch heading for his shoetops and nearly sending it into the Allegheny River.
"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," Rizzo said.
Chicago's bullpen made it stand up, silencing Pittsburgh over the final three innings after the Pirates erased an early 3-0 deficit against starter Jake Arrieta.
Arrieta breezed through the first three innings and was on his way to doing it in the fourth when Pittsburgh broke out. Alvarez hit a fly ball to the wall in right-center with two outs that neither center fielder Ryan Sweeney nor right fielder Nate Schierholtz could corral. The 235-pound Alvarez chugged all the way around the bases for his 33rd -- and by far most taxing -- home run of the season.
Alvarez was still catching his breath when Martin followed with a shot 10 rows deep into the stands in left to bring the Pirates within one. Jones tied it seconds later by sending a laser into the seats in center. It marked the first back-to-back-to-back home runs by the Pirates since Jason Kendall, Brian Giles and Reggie Sanders did it on Aug. 20, 2003, in St. Louis.
Pittsburgh eventually took the lead in the sixth when reliever Brooks Raley mishandled a lob from Rizzo at first base, allowing McCutchen to race all the way home from second.
The Pirates have risen to the top of the NL Central behind the strength of a bullpen led by the irrepressible Grilli. His velocity, however, has dipped since his comeback and Rizzo took advantage.
Still, Hurdle has no plans to take Grilli out of the mix as the Pirates head into the final 15 games of a breakthrough season.
"We've got to keep getting him out there on somewhat of a consistent basis if we want to get him better," Hurdle said. "He's not going to get better not pitching."
Pittsburgh starter Charlie Morton struggled keeping the ball down while trying to bounce back from his worst start since returning from reconstructive surgery on his right elbow in June. Morton allowed three runs in five innings, including a two-run homer by Bogusevic in the fourth and saw a handful of balls caught at the warning track on a night a stiff breeze from the north kept the outfielders busy.