Alfonso Soriano hit a two-run homer in the eighth inning to give the Cubs the go-ahead runs and Chicago completed a three-game sweep of the Pittsburgh Pirates with a 4-2 win on Sunday.
Soriano followed Anthony Rizzo's leadoff single in the eighth with his second homer in as many days and 28th of the season, sending the first pitch from Jason Grilli (1-6) into the Cubs bullpen in left-center.
Josh Vitters and Anthony Recker each hit solo home runs for the Cubs in the fourth.
Chicago is 6-20 on the road since the All-Star break, with five of those wins coming at PNC Park. The Cubs had lost eight consecutive road games when they arrived in Pittsburgh.
Andrew McCutchen homered and Brock Holt had three hits for the Pirates, who have lost seven of nine and continue their freefall out of contention.
Pittsburgh (72-67) peaked at 16 games over .500 this season but now needs to go 9-14 just to avoid extending their North American major professional sports record of consecutive losing seasons to 20.
Pittsburgh loaded the bases with one out in the ninth, but Cubs closer Carlos Marmol struck out Gaby Sanchez and got Pedro Alvarez to fly out to left to earn his 18th save.
Joe Mather went 3 for 5 for the Cubs (54-86), who have the majors' second-worst record.
Chicago's road sweep was its first since Aug. 1-4, 2010, in Pittsburgh. The Pirates were swept in three games at home for the first time this season.
Soriano had six RBIs in the series. His 94 on the season are the most since he put up 95 during his only season with the Washington Nationals in 2006.
A pair of rookie left-handers started and pitched well but came away with no-decisions.
Making the third start of his career, Chicago's Chris Rusin allowed one run on five hits with four strikeouts in five innings. He left the game in line for his first major league victory, but the Pirates tied it in the seventh when Holt scored on a balk by James Russell (7-1).
Pittsburgh's Jeff Locke gave up the homers to Vitters and Recker in the fourth but overall scattered seven hits over six innings.
The Pirates left 13 men on base -- at least one during each of the first seven innings. They stranded two four times, including when Dave Sappelt caught Garrett Jones' sinking liner to right to end the fifth.
McCutchen's homer, his 25th, was his NL-leading 173rd hit. It ended a streak of five consecutive homerless games for the Pirates -- their longest of the season.
Grilli earned the loss in relief for the second straight night.