Updated

CHICAGO (AP) — Alfonso Soriano homered, Derrek Lee delivered the go-ahead two-run single and the Chicago Cubs rallied from three down again to beat the Arizona Diamondbacks 7-5 on Saturday.

Soriano's two-run shot off former Cub Bob Howry in the seventh tied it at 5, and Lee made it 7-5 with a two-run bases-loaded single in the eighth off Juan Gutierrez (0-3).

That made a winner of Sean Marshall (1-1), who pitched two scoreless innings. Carlos Marmol walked Cole Gillespie leading off the ninth, allowed a one-out single by Justin Upton and walked Mark Reynolds — who hit two solo homers — to load the bases.

Adam LaRoche then struck out, giving Marmol his fourth save in five chances.

Early on, about a dozen protesters outside Wrigley Field handed out leaflets blasting Arizona's new immigration law that makes it a state crime to be in the U.S. illegally and lets police question anyone they suspect of being an illegal immigrant. The protesters were headed to a larger rally in downtown Chicago.

Inside the old ballpark, the Diamondbacks were making plenty of noise with their bats before the Cubs rallied.

Cubs starter Carlos Silva allowed eight hits over five innings in his shortest outing of the year. His ERA rose from 1.73 to 2.90.

Reynolds hit his eighth and ninth homers, tying teammate Kelly Johnson for the league lead. Upton went deep, but Arizona blew a three-run lead for the second straight day, and the surging Soriano again delivered the big blow.

His tying shot off Howry in the seventh came after he hit the go-ahead three-run homer in Friday's 11-5 win. He also singled and is now 20 for 55 over his last 17 games.

Soriano's homer came after a 3-1 pitch on the outside corner that he thought was ball four. Instead, it was strike two, but no problem.

He knocked the ball deep into the left-center bleachers for his fourth homer.

The Cubs got a leadoff single from Geovany Soto in the eighth and wild pickoff throw from Juan Gutierrez. That allowed Tyler Colvin — running for Soto — to move to second after pinch hitter Ryan Dempster fouled out on a bunt.

Ryan Theriot and Kosuke Fukudome walked as a wave swept through the stands to load the bases before Lee, who came in with a .205 average, singled past a diving Reynolds at third to make it 7-5.

Before Soriano connected, Dan Haren was in line for the win even though he allowed 10 hits — the most for him since Aug. 30, 2008 — over six innings. Haren also had two hits, leading off the third with a double and scoring the game's first run.

NOTES: Theriot had two singles to extend his hitting streak to 11 games. ... RHP Esmailin Caridad, on the 15-day disabled list with a strained right forearm, could rejoin the Cubs by next weekend "if everything is right," manager Lou Piniella said. Caridad was scheduled to pitch Saturday in Arizona and would likely make several appearances for Triple-A Iowa. When he's activated, he'll replace one of the Cubs' younger relievers, Piniella said, meaning Carlos Zambrano will remain in the bullpen for now. ... The Cubs are juggling their rotation a bit because of the off day on Monday, with Silva and Tom Gorzelanny flipping spots. Gorzelanny will pitch Friday in Cincinnati, with Silva going next Sunday.