Barry Bonds broke his major league record for walks in a season and rookie Noah Lowry allowed four hits in seven-plus innings last night in Phoenix to help the San Francisco Giants post a 5-3 victory over the Arizona Diamondbacks.

Bonds walked three times, once intentionally, to run his season total to 201, surpassing the record of 198 he set two seasons ago. His 104 intentional walks long ago broke his single-season mark of 68 set in 2002.

Bonds singled in the third and struck out looking in the ninth to go without a home run for the third game in a row. He is two shy of 700.

The victory kept the Giants (78-65) in a virtual tie with the Chicago Cubs (76-63) atop the NL wild-card chase, one game ahead of Houston.

Lowry (4-0) struck out four and walked three before leaving the game after Alex Cintron's leadoff single in the eighth. The 23-year-old left-hander blanked Arizona on two hits until Chad Tracy's pinch-hit home run in the seventh.

Marquis Grissom doubled home two runs for the Giants.

* CUBS 5, MARLINS 2: Derrek Lee hit a three-run, eighth-inning double against his former team, helping Chicago rally past Florida at Wrigley Field and remain tied for the NL wild-card lead.

The Marlins fell 21/2 games back.

Lee, who had key hits for the Marlins last October in both Game 6 and Game 7 of the NL championship series against the Cubs, delivered this time for Chicago.

The Cubs came back from a 2-0 deficit and tied the game in the eighth on an RBI single by Sammy Sosa, who was dropped to sixth in the batting order for the first time in 10 years and was booed loudly after striking out in his first two at-bats.

Ryan Dempster (1-1) won in relief and LaTroy Hawkins pitched the ninth for his 21st save.

* PHILLIES 11, METS 9: In New York, David Bell's second home run of the game broke a 13th-inning tie as Philadelphia overcame a four-run deficit to hand the Mets their 18th loss in 20 games.

New York (eight) and Philadelphia (10) combined to tie the major league record for pitchers used, and Philadelphia matched the NL record for one team, one shy of the major league mark set by Seattle in 1996.

* PIRATES 5, ASTROS 2: Jason Bay homered and drive in four runs and Ryan Vogelsong (5-12) limited Houston to one run over six innings as host Pittsburgh handed the Astros their third loss in four games following a 12-game winning streak.

Bay tied the Pirates rookie record of 23 homers, set by Johnny Rizzo in 1938 and matched by Hall of Famer Ralph Kiner in 1946, and leads NL rookies in homers, RBI (71), on-base percentage and slugging percentage. The Pirates have never had a rookie of the year since the award was established in 1947, a year after Kiner's big season.

* BRAVES 8, EXPOS 1: Andruw Jones and Rafael Furcal each homered and pinch hitter Julio Franco capped a six-run seventh inning with a two-run double as host Atlanta stretched its lead in the NL East to 81/2 games.

However, the Braves lost starting pitcher Mike Hampton with a strained left knee. The left-hander gave up four hits in 41/3 scoreless innings before he had to leave the game. He appeared to injure his knee while trying to beat out a sacrifice in the bottom of the fourth. Hampton is scheduled to have an MRI exam Monday.

Livan Hernandez is 0-10 in his last 12 regular season starts against the Braves, including 0-5 this season.

* REDS 9, BREWERS 0: Adam Dunn hit a grand slam in a seven-run third inning to spark Cincinnati at home.

Luke Hudson (3-1) gave up three hits in six innings to improve to 3-0 in his last five starts. Mike Matthews, Phil Norton and Aaron Myette combined to complete the four-hitter.

* ROCKIES 13, PADRES 2: In Denver, Matt Holliday and Clint Barmes drove in three runs each to spark an 18-hit Colorado attack.

Khalil Greene homered twice for San Diego, which lost for the eighth time in 11 games.