ST. LOUIS - The Cardinals have had quite enough of Jim Thome.
Thome punished St. Louis pitching again with two home runs, and the Philadelphia Phillies ended Albert Pujols' 30-game hitting streak in a 9-4 win on Friday night.
"Everybody asks me and says that I own these guys," Thome said. "I think the problem is we think a little too much about it and talk a little too much about it.
"It's the same from a preparation standpoint whether it's the Cardinals or anybody else."
Pat Burrell also homered twice for the Phillies, giving him 101 for his career. The Phillies ended a three-game losing streak by beating the Cardinals for the seventh consecutive time, rebounding from getting swept at Milwaukee.
"I won't say we were in trouble, but we really needed this," Thome said. "You can't mope and you can't dwell on what's happened in the past, you just have to worry about what's happening and just go forward."
Mike Matheny had two hits and two RBIs and rookie Dan Haren had a strong outing for the Cardinals, allowing two runs in six innings.
Thome's two-run shot on a full count from Steve Kline with one out in the eighth put the Phillies ahead 5-4. He also connected off Haren in the fourth, his 37th.
It was the first homer the left-handed Kline has allowed to a left-handed hitter this season in 83 at-bats, and he flung his glove into the dugout on his way off the field. Kline had thought his 2-and-2 pitch should have been a strike.
"I wanted it, but they weren't going to give it to me," Kline said. "Jim Thome vs. Steve Kline, do the math."
Thome has hit five homers in his past four games against the Cardinals and is 22-for-49 (.449) against St. Louis for his career with 13 homers and 27 RBIs. This was his 31st career multihomer game, fifth this season and second in nine days.
Pujols missed four games with flulike symptoms that began to drain him Sunday, and he served a two-game suspension during that time. He was a surprise addition to the lineup after complaining he still felt weak about three hours before gametime.
Pujols grounded out twice, once into a double play, and struck out twice and left batting a major league-leading .367.
CUBS 4, D'BACKS 1: Carlos Zambrano lost his no-hit bid with two outs in the eighth on an extremely close play in pitching Chicago past host Arizona.
Sammy Sosa homered twice and Curt Schilling struck out 14. But Zambrano got all the attention as he tried to make history.
The Diamondbacks had not come close to a hit until Shea Hillenbrand topped a ball down the line in the eighth. Third baseman Aramis Ramirez charged, gloved it and made a throw that first baseman Randall Simon stretched to catch.
First-base umpire Bill Miller called Hillenbrand safe. A TV replay, however, appeared to show Hillenbrand was out.
"I had the play safe," Miller said. "I saw a replay; it was a point where Randall made a great stretch, made a great play. I have to go with what I had on the field."
Zambrano finished with a three-hitter, losing his shutout bid in the ninth.
Sosa extended his streak of30-homer seasons to nine, sixth longest in history.
GIANTS 6, MARLINS 4: Rookie Dontrelle Willis' second-half struggles continued as he labored for five innings against host San Francisco.
BRAVES 9, ROCKIES 3: Chipper Jones homered and drove in five, Greg Maddux pitched six solid innings and visiting Atlanta snapped a three-game losing streak.
DODGERS 2, METS 1: Eric Gagne tied a major-league record with his 43rd consecutive save this season and preserved Hideo Nomo's fourth straight win at home for Los Angeles.
REDS 4, ASTROS 3: Juan Castro hit a tiebreaking sacrifice fly in the seventh as visiting Cincinnati snapped Wade Miller's six-game winning streak against it.
BREWERS 3, PIRATES 2: Wayne Franklin pitched no-hit ball into the seventh and Scott Podsednik hit two home runs as host Milwaukee matched a season high with its fourth straight win.
PADRES 5, EXPOS 3: Mark Kotsay hit a two-run homer in a three-run seventh that lifted host San Diego.