Nam Y. Huh, Associated Press
Cubs' Alfonso Soriano slides safely into home plate ahead of the tag by Arizona catcher Chris Snyder.

CHICAGO — Alfonso Soriano's warming up, even if the weather isn't. He looked like his old self Saturday and hopes he's put his season-long struggles behind him.

The Cubs star had four hits, including a go-ahead double in a six-run seventh inning, and showed some flair on the bases to help Chicago beat the Arizona Diamondbacks 7-2.

"I feel very comfortable now at home plate. My hands stayed back a little more now and I wait for the ball," Soriano said. "I'm glad I have a big day, more important that we won this game."

Soriano's 4-for-5 performance raised his average from .191 to .223. And slowed earlier this season by a calf injury that landed him the on the disabled list, he twice raced home and scored with good slides to send the largest crowd of the season at Wrigley Field (41,597) into a tizzy.

Kosuke Fukudome's first homer since opening day capped the seventh-inning rally as the Cubs won their second straight against the team that swept them in the first round of the playoffs last October.

After a strong performance by Diamondbacks' rookie Max Scherzer, the Cubs trailed 2-1 headed into the seventh when they got to Arizona reliever Chad Qualls (0-4), whose ERA jumped from 0.93 to 2.75 when he gave up four runs and four hits in one-third of an inning.

METS 12, REDS 6 (1ST GAME); REDS 7, METS 1 (2ND GAME): At New York, Bronson Arroyo (2-4) pitched eight dominant innings to win a matchup of struggling pitchers and Jeff Keppinger had a career-high five hits for the Reds in the second game.

In the opener, Carlos Beltran hit a bases-loaded triple and drove in five runs to back Johan Santana's first home win for the Mets. Carlos Delgado and Brian Schneider hit New York's first back-to-back homers of the season.

Ken Griffey Jr. had two hits and an RBI in the nightcap, a makeup of Friday night's rainout, but remained stalled in his bid to become the sixth player with 600 home runs. He is homerless in 59 at-bats.

The Mets loaded the bases with one out in the second but Arroyo struck out Ramon Castro, and pitcher Mike Pelfrey (2-3) flied out to right fielder Griffey, who made a basket catch on the run.

The Reds took the lead in the sixth on Scott Hatteberg's double, which scored Keppinger.

In the early game, Santana (4-2) allowed three runs and 10 hits, and struck out five in six innings. Matt Belisle (1-3) took the loss.

GIANTS 8, PHILLIES 2: At San Francisco, Tim Lincecum (5-1) struck out eight in eight impressive innings to outpitch 45-year-old Jamie Moyer, and the Giants ended a season-worst five-game skid. Omar Vizquel had three hits and scored a run in a successful return from the disabled list, Randy Winn hit his first home run of the year and Aaron Rowand connected against his former club for the second time in just more than a week.

Ryan Howard hit a leadoff homer on the first pitch from Lincecum in the second to give the Phillies a 1-0 lead, then Rowand tied it with his fourth homer leading off the bottom half. Chris Coste also homered for Philadelphia, a seventh-inning solo shot.

Moyer (2-3) faced a pitcher 22 years his junior for the second straight start. The 23-year-old Lincecum was born on June 7, 1984 — eight days after Moyer signed his first contract.

CARDINALS 5, BREWERS 3: At Milwaukee, Ryan Ludwick hit a two-run single with two outs in the ninth inning, and St. Louis' shaky bullpen held on as the Cardinals snapped a season-long three-game skid. Prince Fielder hit a tying homer in the eighth for Milwaukee, and Ben Sheets set a franchise record for strikeouts with 1,086. Still, the slumping Brewers lost for the seventh time in eight games as Eric Gagne (1-2) took the loss.

Gagne gave up consecutive singles to start the ninth, intentionally walked Albert Pujols to load the bases with one out. Ludwick grounded a single just past shortstop J.J. Hardy one out later to give St. Louis a 5-3 lead.

Russ Springer (1-0) earned the win and Ryan Franklin, who took over the closer's role Saturday from struggling Jason Isringhausen, got three outs for his third career save and second this year.

PIRATES 5, BRAVES 2: At Pittsburgh, Tom Gorzelanny (3-3) shook off Mark Teixeira's two-run homer in the first inning to shut out Atlanta during the rest of his 7 1/3 innings, Jason Bay homered and the Pittsburgh Pirates extended the Braves' road woes.

Bay doubled and scored on Ronny Paulino's sacrifice fly in the second inning, then followed Jason Michaels' leadoff single with a two-run homer to left-center in the fourth off Chuck James (2-2). Paulino added a two-run double in the sixth and drove in three runs during Pittsburgh's fifth consecutive victory.

The Braves, who came to Pittsburgh after sweeping a six-game homestand against San Diego and Cincinnati, lost their sixth in a row away from home and are a major league-worst 4-13 on the road. The Braves own the majors' best home record of 14-4.

MARLINS 11, NATIONALS 0: At Washington, Dan Uggla drove in five runs, Andrew Miller allowed two hits in seven innings and Florida won its sixth straight. The Marlins' winning streak is their longest since they won nine in a row from Aug. 20-29, 2005. Florida (22-14) is eight games over .500 for the first time since Sept. 18, 2005.

PADRES 3, ROCKIES 2: At San Diego, Greg Maddux became the ninth pitcher in big league history to win 350 games, reaching the plateau in his fifth try, and Adrian Gonzalez hit a three-run homer to help the Padres end a five-game losing streak. The 42-year-old Maddux (3-3) improved to 350-217 in 23rd big league seasons.

ASTROS 5, DODGERS 0: At Los Angeles, Chris Sampson pitched three-hit ball over seven innings, and Darin Erstad and Miguel Tejada each drove in two runs for Houston. Sampson (2-3) had given up 18 earned runs in 15 1/3 innings over his previous four starts.

American League

INDIANS 12, BLUE JAYS 0: At Cleveland, Grady Sizemore homered twice and drove in five runs, Aaron Laffey pitched seven sharp innings and the Indians handed Toronto its fourth straight loss.

Sizemore had three hits, including a leadoff homer to start a six-run first inning against Dustin McGowan (2-3). Sizemore added a three-run shot in the fifth off Jason Frasor to make it 12-0. Both came on 3-2 pitches and gave Sizemore his second career multihomer game. He has six home runs this year.

Cleveland won for the fourth time in five games and defeated the Blue Jays for the ninth straight time at home. Before the game, Toronto learned star center fielder Vernon Wells is expected to be sidelined six to eight weeks with a broken left wrist.

Laffey (1-2) made his third strong start since being recalled from Triple-A Buffalo on April 28. The left-hander allowed six hits, struck out two and walked one as he lowered his ERA to 1.83.

RAYS 2, ANGELS 0: At St. Petersburg, Fla., Scott Kazmir struck out six in six innings and Tampa Bay handed Joe Saunders his first loss of the season.

One day after James Shields shut out the AL West co-leaders 2-0 on a one-hitter, Kazmir (1-1) held the Angels to a single and two doubles in his second start since missing all of April with a left elbow strain suffered during spring training.

Evan Longoria, who won Friday night's game with a two-run, ninth-inning homer, drove in the only run off Saunders (6-1) when he grounded into a force play with the bases loaded in the first inning.

Saunders, trying to become the AL's first seven-game winner, allowed four hits, struck out three and walked a season-high four in six innings.

Troy Percival pitched the ninth to finish off the three-hitter and earn his eighth save in nine opportunities.

RANGERS 6, ATHLETICS 4: At Arlington, Texas, Milton Bradley homered and drove in three runs as Texas won its fifth straight, despite having its shutout streak end at 33 innings.

Rangers pitchers had posted three shutouts in a row and the scoreless streak was the second-longest in franchise history. Oakland ended it with an unearned run in the third inning.

Texas right-hander Kevin Millwood left in the first with a strained right groin. He recorded two outs and threw 12 pitches before exiting.

Josh Rupe (1-1) replaced Millwood and yielded two runs in three innings.

Oakland's Dana Eveland (3-3) allowed three runs and six hits over six innings.

RED SOX 5, TWINS 2: At Minneapolis, Daisuke Matsuzaka remained undefeated and Coco Crisp and Jed Lowrie hit back-to-back homers to lead off the seventh inning for Boston. It was Crisp's first home run since Sept. 6 and Lowrie's first of his career. Matsuzaka (6-0) gave up two runs and six hits with seven strikeouts in seven innings for the Red Sox.

Mike Lowell and Kevin Youkilis also hit solo homers for Boston and Jonathan Papelbon bounced back from two straight blown saves to get his 11th of the season.

YANKEES 5, TIGERS 2: At Detroit, Derek Jeter hit his first homer of the season, Darrell Rasner pitched six-plus innings and the Yankees ended a six-game losing streak to the Tigers. Rasner (2-0) gave up two runs and four hits departing after Magglio Ordonez's leadoff single in the seventh.

Three relievers finished, with Joba Chamberlain pitching the eighth and Mariano Rivera pitched the ninth for his 10th save in 10 chances. The Yankees had lost seven of eight against Detroit dating to last season.

Jeremy Bonderman (2-4) lasted just four-plus innings in his shortest start of the year, giving up five runs, six hits and four walks.

ORIOLES 6, ROYALS 5: At Kansas City, Mo., Kevin Millar hit a three-run homer and finished with three hits to help Baltimore earn its 12th straight victory over the Royals. Garrett Olson (2-0) went 5 1/3 innings for Baltimore, allowing three runs and eight hits.