Kyle Schwarber has just four hits in his last 29 at bats, though all have been for home runs. He set a club record along the way.
Schwarber, Miguel Montero and Starlin Castro all hit home runs in support of another solid outing from Jake Arrieta, and the Chicago Cubs beat the San Francisco Giants 8-5 Tuesday night for their sixth straight win.
Schwarber's towering, three-run homer in the third set the tone for the Cubs, who have won 21 of 25 games to pull 7 1/2 games ahead of the Giants for the second wild-card spot.
He hit his 12th home run within his 42nd game, the fastest Cubs player to do so since 1900.
Arrieta (16-6) had his 13th consecutive quality start, the longest streak by a Cubs pitcher in 23 years. He allowed an unearned run on four hits in six-plus innings.
Arrieta, who took over the major league lead for wins, walked one and struck out eight, lowering his ERA to 2.22, second in the NL behind Los Angeles Dodgers' Zack Greinke's 1.67.
Hector Rondon pitched the ninth for his 24th save in 28 chances. He's given up two runs over his last 39 innings (0.46 ERA).
Montero added a two-run homer in the fourth and Castro, who was a triple shy of the cycle, hit a solo shot in the sixth.
Matt Cain (2-4) lasted five innings, giving up six runs and eight hits. He walked two and struck out three. Cain lost his third straight decision and fell to 0-3 over six starts since his last win on July 22.
In nine innings against the Cubs this season, Cain has allowed 11 earned runs and 14 hits.
Andrew Susac drove in three with a double and Gregor Blanco drove in a run in the eighth that pulled the Giants to 8-5.
Arrieta also doubled and scored a run on Brandon Crawford's fielding error, ending a season-best eight-game errorless streak for the Giants.
The Cubs moved into a third-place tie in the NL with the Cincinnati Reds, each with 132 home runs. Only the Dodgers (150) and Colorado Rockies (143) have more.
The Cubs improved to 5-0 against the Giants this year.