CHICAGO -- Nicholas Castellanos produced the first four-hit game of his short but impressive Cubs tenure.
And after Castellanos led off the eighth with an infield single, Kris Bryant made sure to capitalize.
Bryant's two-run home run vaulted the Cubs to a zany 12-11 victory Wednesday night over the Giants that extended their winning streak to four games.
Bryant's homer off reliever Reyes Moronta was his 26th of the season and capped a wild game that saw five lead changes.
Bryant's homer also saved the Cubs (68-58) plenty of embarrassment after they blew a 6-2 lead after three innings.
For the second time this season, the Giants took advantage of Yu Darvish's finesse pitching to pound him for four home runs.
Many Twitter zealots pointed out this was the fifth consecutive start Darvish didn't walk a batter while striking out at least eight. But Giants hitters have been very comfortable against Darvish, who has allowed 11 runs on 13 hits, including five home runs, in 11 1/3 innings covering two starts against them.
Evan Longoria launched a two-run homer in the first off Darvish, who settled down and retired 12 consecutive batters before Brandon Crawford doubled in the fifth.
One out later, Mike Yastrzemski hit a two-run opposite-field shot to left to cut the Cubs' lead to 6-4.
But that wasn't Darvish's biggest miscue. With one out in the sixth, Darvish induced Corey Dickerson to hit a grounder to first but couldn't catch the throw from Anthony Rizzo for an error.