Phillies 3, Brewers 2

MILWAUKEE -- Chase Utley homered in the first inning, Cole Hamels worked into the seventh, and Philadelphia snapped a three-game losing streak with a victory over Milwaukee at Miller Park.

Hamels (3-5) held the Brewers to two runs (one earned) on seven hits and two walks while striking out seven over 6 2/3 innings.

Utley and Ben Revere finished with two hits for Philadelphia. Jean Segura and Ryan Braun had two hits apiece for Milwaukee.

Cardinals 2, Pirates 0

ST. LOUIS -- Matt Adams drilled a two-run homer in the bottom of the ninth inning, and St. Louis blanked Pittsburgh at sold-out Busch Stadium.

First-time All-Star Pat Neshek (3-0) worked a clean ninth inning for the win.

Third baseman Matt Carpenter led off the ninth with his third walk of the night. After left fielder Matt Holliday flied out, Adams jumped on an 0-1 curveball from Justin Wilson (2-1) and lined it into the seats in right for his 10th homer of the year.

Astros 12, Rangers 7

ARLINGTON, Texas -- Marwin Gonzalez's three-run triple keyed a six-run, second-inning rally, and Houston snapped a seven-game hitting streak with a victory over Texas.

Houston's Jon Singleton went 3-for-4 with a three-run home run and four RBIs. Alex Presley was 2-for-4 with a solo home run and two RBIs in support of Jarred Cosart, who won while struggling for a second consecutive game.

Cosart (9-6) gave up six runs on nine hits over five innings, striking out two and walking two.

Padres 6, Rockies 1

DENVER -- Ian Kennedy threw seven innings of one-run ball, and San Diego earned a win over Colorado.

Kennedy (7-9) gave up four hits, including center fielder Drew Stubbs' homer in the fourth. He walked two and struck out nine, eight of them swinging. Padres pitchers finished with 13 strikeouts.

San Diego's Chase Headley went 4-for-5 with two RBIs, and Rene Rivera finished 2-for-2 with two walks.

Diamondbacks 9, Marlins 1

PHOENIX -- Rookie David Peralta had two hits and drove in three runs, and All-Star Paul Goldschmidt added two hits and an RBI in Arizona's victory over Miami.

Peralta doubled home two runs in a five-run second inning and tripled in a run in the fourth. He has 40 hits in 32 games since a June 1 promotion from Double-A Mobile.

Goldschmidt drove in a run in the fourth with his 33rd double, a pre-All-Star-break franchise record.

Mariners 2, Twins 0

SEATTLE -- Mariners starter Hisashi Iwakuma (7-4) allowed just four hits and no walks while striking out a season-high 10 batters in seven innings of work. Over 33 2/3 career innings against the Twins, Iwakuma has yet to give up an earned run.

Mariners catcher Mike Zunino and right fielder Michael Saunders both hit home runs for Seattle off Twins starter Kevin Correia, who lost his third straight game. Saunders' home run in the seventh grazed the glove of center fielder Sam Fuld and went over the fence.

A's 5, Giants 0

OAKLAND, Calif. -- Jesse Chavez pitched six shutout innings, and Alberto Callaspo ripped a key two-run double, lifting Oakland to a victory over San Francisco in the opener of the Bay Bridge Series.