Khalil Greene turned a long, rainy day at Wrigley Field into a satisfying, 5-4 road victory for the San Diego Padres.
The game was delayed twice by rain, for a total of 78 minutes, on a day when the temperature was around 60 degrees.
The Padres moved within a game of the Cubs for the NL wild-card lead.
"It's going to be a battle until the last week of September," Padres Manager Bruce Bochy said.
The Cubs had a 4-3 lead following a two-run home run by Nomar Garciaparra in the seventh. They didn't get much help from Sammy Sosa, who struck out four times and was booed.
Early in the game, umpire Bruce Froemming ruled a hard-sliding Terrence Long safe at second as Garciaparra sidestepped him before committing a throwing error. Froemming acknowledged after the game that he missed the call.
* EXPOS 7, DIAMONDBACKS 5: Tony Batista hit his 20th homer and drove in four runs, and Montreal finished a three-game sweep of visiting Arizona.
Montreal finished 6-0 against the Diamondbacks.
* BRAVES 4, BREWERS 2: Jaret Wright won his ninth straight decision and J.D. Drew hit a go-ahead homer in Atlanta.
Wright improved to 10-2 in night games with a 1.81 ERA, best in the majors.
* ROCKIES 3, PHILLIES 1: Shawn Estes gave up one run in six innings and Royce Clayton hit a two-run homer in Philadelphia.
A day after hitting a season-high six home runs, the Phillies were stymied by Estes (13-4). The left-hander scattered four hits, struck out three and walked four to win his fifth straight decision.
* GIANTS 7, PIRATES 0: San Francisco's Jason Schmidt dominated his former team, just as he's done against almost everybody this season.
Schmidt pitched a four-hitter with 11 strikeouts for his NL-leading 15th win, in Pittsburgh. He joined Oakland's Mark Mulder as the only 15-game winners in the majors.
"It's nice to come back here and win, but it's not like I was thriving on it," Schmidt said.
* METS 2, ASTROS 1: Andy Pettitte reached back, threw to the plate and knew something was missing: his velocity.
"I was getting under the radar, under the hitting speed," he said.
Pitching across town from the ballpark where he became a star, he allowed just one run in his return to New York but didn't make it out of the sixth.
Instead, Victor Zambrano (2-0) won his second straight start since the Mets acquired him from Tampa Bay on July 30.
* MARLINS 8, CARDINALS 2: St. Louis isn't quite the same team with five starters on the bench, as Florida was pleased to discover at home.
Without those players, the Cardinals made three errors and at least one other defensive lapse.
"[They were] mistakes we normally don't make," Cardinals starting pitcher Matt Morris said.
The starting time was moved up six hours because of expected rain associated with Hurricane Charley.
* REDS 6, DODGERS 5: In Cincinnati, D'Angelo Jimenez singled in the go-ahead run in the eighth inning, and the Reds avoided a three-game sweep.
The Reds scored three times in the eighth off Darren Dreifort (1-3), including a two-run homer by Wily Mo Pena, his 19th.
Steve Finley is 11 for 22 since being acquired by the Dodgers from Arizona on July 31.