Geovany Soto hit a three-run homer to cap a four-run 13th inning and send the Cubs to a wild 5-2 victory over the Giants.