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.
The Cubs arrived in Pittsburgh on a six-game losing streak and having been outscored 31-10 in getting swept by the Nationals.
“You have to give these guys a lot of credit after what happened in Washington to come in here and do what they did against a really good team,” Chicago manager Dale Sveum said.
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.
Joe Mather went 3 for 5 for the Cubs (54-86), who have the majors’ second-worst record.
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.
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.
“It’s a game of inches, and off the bat I thought for sure it was falling,” said Jones, “but Sappelt got a good jump on it and made a good play.