The Chicago Cubs' late-inning heroics are starting to become routine.

Sammy Sosa hit a three-run homer with one out in the ninth as the Chicago Cubs rallied twice to beat the San Diego Padres, 9-8, yesterday at Wrigley Field.

It marked the 10th time the Cubs have won in their last at-bat and their 14th come-from-behind win this season.

"I don't know why we always wait so long but there's always a lot of dramatic excitement," Cubs first baseman Mark Grace said.

The Cubs scored four runs in the eighth to tie the game at 5 and then rallied from three runs down in the ninth off Trevor Hoffman (0-3) to win for the 13th time in 18 games.

With one out, Jeff Blauser singled, Henry Rodriguez walked and Grace hit an RBI single. Sosa then hit his 18th homer to left-center on a 1-1 pitch to win the game.

"That's Sammy's thing right there," teammate Lance Johnson said. "He's the best I've ever seen at winning games like that. Sammy lives for that."

PIRATES 8, DODGERS 4: Turner Ward, who had only five RBI all season, drove in three runs and Todd Ritchie lasted eight innings as host Pittsburgh swept its second straight series.

The Pirates have won six in a row and nine of 11 and are four games over .500 for the first time since May 9, 1997.

The Dodgers' biggest loss may have been catcher Todd Hundley, who sprained his left wrist in a third-inning collision with Ed Sprague. He has broken the wrist twice, but still stayed in the game until the sixth. "The Steelers' doctor looked at it and he said it appeared to be more of a bone bruise than a broken bone," Hundley said. "I hope and pray he's right."

DIAMONDBACKS 15, EXPOS 2: Matt Williams hit his 16th homer and Steve Finley had four extra-base hits and four RBI, including a three-run triple, to help Arizona roll in Montreal.

The Diamondbacks tied a team record for runs in a game and set a record for hits with 20. Arizona had 12 extra-base hits, including a team-record eight doubles.

Williams, who went 3 for 5, hit a two-run homer in the first off Javier Vazquez (2-4) and Finley's triple highlighted a five-run fifth. Finley has driven in 15 runs in his last four games.

REDS 8, METS 7: Mike Cameron hit a go-ahead, two-run single off John Franco with two outs in the ninth inning, leading visiting Cincinnati to its fifth straight win.

New York has lost six straight. Franco (0-1), who blew a save for the first time in 15 chances this season, was booed loudly by the Shea Stadium crowd. He has lost nine straight decisions dating from last year.

PHILLIES 7, GIANTS 6: Ron Gant sparked a two-out rally with a two-run triple in the fifth inning as Philadelphia won at home.

The Giants, who lost for the sixth time in seven games, scored two in the seventh and three in the eighth but fell short when J.T. Snow's searing liner with two on was caught by Bobby Abreu in right to end the eighth.

ROCKIES 3, BRAVES 2: Todd Helton hit a solo homer in the 11th inning to give Colorado the victory in Atlanta.

Helton, who entered the game in the ninth inning as a pinch hitter, connected on a 1-2 pitch for his 10th home run, a shot to right off Russ Springer (0-1). The Rockies were no-hit for six innings by Atlanta rookie Odalis Perez.

MARLINS 10, CARDINALS 2: Preston Wilson tripled and hit a three-run homer to support fellow rookie Ryan Dempster, who struck out nine in seven innings for host Florida.

St. Louis committed three errors, including a dropped fly by left fielder Willie McGee that led to four unearned runs in Florida's five-run fifth.

ASTROS 9, BREWERS 1: In Milwaukee, Jose Lima pitched a four-hitter to become the NL's first nine-game winner and Jeff Bagwell and Richard Hidalgo each homered to lead Houston.

Lima (9-2) struck out eight and walked none for his second complete game.