Tom Gannam, Associated Press
Cardinals' Kyle Lohse pitches against Mets Monday in St. Louis.

ST. LOUIS — Kyle Lohse allowed an unearned run in seven innings for his seventh straight win and Albert Pujols had two hits and two RBIs in St. Louis' Cardinals' 7-1 victory over New York on Monday night.

Chris Duncan added a two-run homer, his first since May 16, for the Cardinals and Aaron Miles had three hits while extending his hitting streak to 12 games.

John Maine (8-6) lasted four innings to match his season low for the Mets, who have lost three of four.

Mark Mulder got the last three outs, making the first relief appearance of his career in his 2008 debut. He missed most of the previous two seasons with a shoulder injury. He allowed two hits with a strikeout.

Lohse (10-2) allowed five hits, struck out four and walked two.

REDS 4, PIRATES 3: At Cincinnati, Ken Griffey Jr. hit a two-run homer in the bottom of the ninth inning to rally Cincinnati. Griffey's 603rd homer came off Matt Capps (1-3), who started the ninth with a 3-2 lead but couldn't get an out. David Ross opened with a double, and Griffey — who got into the game as a defensive replacement in the ninth — hit the second pitch he saw into the seats in right-center.

ASTROS 4, DODGERS 1: At Houston, Roy Oswalt struck out nine in six strong innings, then left with a strained hip. Oswalt (7-8) allowed a run and six hits, but walked off the field with a trainer after throwing his warmup pitches for the seventh. Manager Cecil Cooper said Oswalt strained his left hip abductor in the sixth inning. Cooper said Oswalt was "day-to-day."

MARLINS 6, NATIONALS 5 (10): At Miami, Josh Willingham hit a home run in the bottom of the 10th for Florida after Hanley Ramirez had forced extra innings with a homer in the ninth. It was the third career walkoff homer for Willingham, whose shot off Jon Rauch (4-2) was his second of the game. Willingham's two-run homer in the third put Florida ahead 3-1.

DIAMONDBACKS 6, BREWERS 3: At Phoenix, Mark Reynolds homered, doubled twice and drove in three runs, and Arizona beat the Milwaukee. Stephen Drew added two doubles and Augie Ojeda tripled and singled as the slumping NL West leaders avoided falling below .500. Arizona is 42-41 and leads the woeful West by 3 1/2 games.

PADRES 15, ROCKIES 8: At Denver, Edgar Gonzalez's second homer of the game capped San Diego's seven-run ninth inning as the Padres ended their eight-game losing streak with a 15-8 victory over Colorado. It was San Diego's first visit to Coors Field since the teams played a one-game playoff on Oct. 1, 2007. The Rockies have lost eight straight and nine of their last 10.

CUBS 9, GIANTS 2: At San Francisco, Mark DeRosa and Ted Lilly got the Chicago Cubs back on track — DeRosa with two fine swings and Lilly with another impressive outing. DeRosa hit a grand slam and also a two-run homer to match his career high with six RBIs, Lilly pitched eight shutout innings and the Cubs ended a four-game skid with a 9-2 victory over the San Francisco Giants on Monday night. DeRosa hit his third career grand slam and produced his second multihomer game.

AMERICAN LEAGUE

RAYS 5, RED SOX 4: At St. Petersburg, Fla., James Shields scattered five hits over 6 1/3 innings and B.J. Upton and Gabe Gross homered to help Tampa Bay beat Boston to open a 1 1/2-game lead in the AL East. The Rays (50-32), surprising owners of the best record in baseball, have won six of seven and ended a six-game losing streak to the Red Sox. It was the first meeting between the teams since their June 5 benches-clearing brawl at Fenway Park that led to the suspensions of eight players, including Shields (6-5).

RANGERS 2, YANKEES 1: At New York, Scott Feldman and a reshuffled Texas bullpen shut down New York on four hits. The win moved Texas to 43-41, the first time since Sept. 22, 2006, the Rangers have been two games over .500. Alex Rodriguez hit his 534th home run for the Yankees, tying Jimmie Foxx for 14th place on the career list.

ROYALS 6, ORIOLES 5 (11): At Baltimore, Miguel Olivo homered off George Sherrill with two outs in the ninth to force extra innings, and Jose Guillen singled in the tiebreaking run in the 11th for Kansas City. The Royals rallied from a four-run deficit to win their sixth straight on the road, the team's longest run since 1999. The victory also ended Kansas City's seven-game losing streak at Camden Yards.

ATHLETICS 6, ANGELS 1: At Anaheim, rookie Greg Smith threw a four-hitter, Eric Chavez hit a two-run double, and Oakland beat Los Angeles to pull within 3 1/2 games of the Angels in the AL West. Smith (5-6) struck out three and walked two in his second complete game in 16 big league starts. It was his first victory in six starts against AL West teams. He threw 101 pitches.

TIGERS 5, TWINS 4: At Minneapolis, Curtis Granderson's go-ahead RBI single capped Detroit's two-run eighth inning. Granderson's single to right-center fell two steps in front of Carlos Gomez, allowing Matt Joyce to trot home from third and helping Detroit win its sixth straight. Joyce tripled one batter earlier to score Gary Sheffield with the tying run. Casey Fossum (1-0) pitched 1 1/3 innings of scoreless relief, and Joel Zumaya got five outs for his first save of the season in his first opportunity.

WHITE SOX 9, INDIANS 7: At Chicago, Nick Swisher homered from both sides of the plate, hitting his second grand slam in four games and adding a solo shot to lead surging Chicago. Jim Thome got the White Sox started with a three-run homer in the first as the AL-Central leaders won their fifth straight and knocked the Indians 10 1/2 games back. Cleveland's Jhonny Peralta went 5-for-5 with three doubles, his 12th homer and three RBIs. The Indians scored three in the ninth before Matt Thornton got Casey Blake to line out with a runner on for his first save.