CHICAGO -- Kris Bryant went 2-for-4 with his National League-leading 36th home run of the season as the Chicago Cubs held on to complete a three-game sweep of the Pittsburgh Pirates with a 6-5 victory on Wednesday night.
Cubs starter Jason Hammel (14-7) bounced back from back-to-back losses, allowing one run and three hits, striking out six and walking three.
Pittsburgh starter Ryan Vogelsong (3-4) gave up five runs and six hits, walked three and struck out three as the Pirates suffered their third straight loss.
Francisco Cervelli singled home Starling Marte from third against Chicago reliever Aroldis Chapman with two outs in the ninth to trim the lead to one run. But Chapman struck out Jordy Mercer with two runners on to secure for his 12th Cubs save, 32nd of the season and second in two nights.
Vogelsong departed after walking Addison Russell, leaving runners on first and second with none out for reliever Antonio Bastardo. Both runners advanced on a wild pitch with one out and Heyward came home on a balk for a 4-1 lead.
Willson Contreras made it 5-1 with his double to the left field wall to score Russell.
Chicago reliever Trevor Cahill loaded the bases with two hits and a walk with one out in the seventh. But Justin Grimm came in and struck out Josh Bell, issued a run-scoring walk to Andrew McCutchen that brought in Mercer and got an inning-ending diving catch in short left by Russell.
Russell made it 6-2 in the seventh with a sacrifice to center that scored Anthony Rizzo.
Bryant reached base three times, including a walk, and Heyward also had two hits and a walk.
Bryant's home run gave the Cubs a 1-0 lead with one out in the first. His towering solo shot to the left field corner gave Bryant the most homers by any Cubs player since Derrek Lee in 2009.
Russell's two-out single in the fourth brought home Bryant from third for a 2-0 Cubs lead.
The Pirates had runners at first and second in the fifth and Josh Harrison brought home Rodriguez with a two-out infield single to trim the Cubs' lead to 2-1. Hamel went on to load the bases for McCutchen, who struck out swinging to end any additional threat.
A monthlong saga involving Cubs infielder Tommy La Stella ended Wednesday with his return to the team and a spot in the starting lineup at second base.
La Stella declined to report as assigned to Triple-A Iowa on July 29 and opted to train at home before agreeing to return to the organization and reporting for a two-game assignment at Double-A Tennessee followed by six games at Iowa.
NOTES: Pittsburgh acquired LHP Zach Phillips from the Baltimore Orioles in a trade for LHP Kyle Lobstein on Wednesday. Phillips was 9-3 with a 4.45 ERA in Triple-A. ... The Pirates have Thursday off and resume play Friday in Milwaukee, sending a starting pitcher to be named against Brewers RHP Junior Guerra (7-3, 2.93 ERA) to open a three-game weekend series. ... When newly-acquired LHP Kelvin Marte appears in a game he'll be the 48th player the Pirates have used this season. The record is 52, set in 2011. ... Along with activating INF Tommy La Stella, the Cubs also optioned RHP Spencer Patton to Triple-A Iowa on Wednesday. Patton is 1-1 with a 4.67 ERA in 12 relief appearances with the Cubs. ... Chicago opens a four-game weekend series with the visiting San Francisco Giants on Thursday, sending Mike Montgomery (1-1, 3.50 ERA) against Giants RHP and ex-Cub Jeff Samardzija (11-9, 4.00 ERA).