Greg Maddux pitched a six-hitter for his first complete game in exactly one year and his first shutout in precisely three years, earning his 297th win and leading the Chicago Cubs to a 5-0 victory yesterday over the Milwaukee Brewers at Wrigley Field.

Sammy Sosa hit his 556th homer and Moises Alou also homered for the Cubs.

Maddux (8-7) got his 35th shutout, his first since a six-hitter against Tampa Bay on July 17, 2001. The 38-year-old right-hander pitched his 104th complete game and first since an eight-hitter against the New York Mets last year -- also on July 17. Maddux, whose defense turned three double plays, finished with four strikeouts and did not walk anyone.

"As far as a day to pitch on, this was as easy it gets," he said. "It was cool, the wind was blowing in and all the mistakes were hit at guys."

Maddux got seven straight groundouts starting in the fifth inning.

Ben Sheets (9-6) gave up two runs and six hits in seven innings.

Sosa hit his 17th homer of the season in the first inning, a drive against a wind blowing in at 15 mph. Alou added his 20th in the fourth and Corey Patterson homered in a three-run eighth.

* GIANTS 4, ROCKIES 0: Jason Schmidt allowed four hits in eight innings for his 12th straight win to lead visiting San Francisco.

The Giants managed just three hits, but one was a two-run double by Barry Bonds in the eighth.

Schmidt (12-2) struck out eight and walked two in combining with Jim Brower and Scott Eyre on a four-hitter. Schmidt has not lost since April 26, a span of 16 starts. Jack Sanford won 16 straight decisions for the Giants in 1962.

Bonds tied Luis Aparicio for 58th on baseball's career list with his 2,667th hit.

* REDS 7, CARDINALS 5: Adam Dunn hit a tiebreaking three-run homer in the eighth to help Cincinnati cool off visiting St. Louis.

The Cardinals, who had overcome a 4-0 deficit to tie the score, had won 10 of their last 11 games.

After Albert Pujols tied the score at 4 in the eighth with his 24th homer, Julian Tavarez (2-3) couldn't hold the lead in the bottom of the inning. Ryan Freel was hit by a pitch, Steve Kline walked Barry Larkin and Dunn hit his 26th homer.

* PADRES 7, ASTROS 4: Mark Loretta hit a two-run homer to spark a five-run fifth inning that helped David Wells win his third straight decision for visiting San Diego.

Houston (44-46) has dropped four straight and eight of 10 and remains 12 games behind NL Central-leading St. Louis.

Wells (5-5) gave up three runs and seven hits in 51/3 innings.

* PHILLIES 8, METS 2: In New York, Jim Thome hit his major league-leading 30th homer among his three hits and Jimmy Rollins doubled home two runs in a three-run third inning that helped Philadelphia top the Mets.

Randy Wolf (4-5) allowed one run and six hits in 51/3 innings to win for just the second time in 10 starts.

* BRAVES 6, EXPOS 2: In Atlanta, Marcus Giles hit a tiebreaking, two-run homer in the seventh inning to help Russ Ortiz post another victory over Montreal.

J.D. Drew and Adam LaRoche had solo homers for the Braves, who won for the 14th time in 18 games and stayed one game behind Philadelphia in the NL East.Ortiz (11-6) won his fifth straight start and is 4-0 this season against the Expos.

* PIRATES 4, MARLINS 2: Tike Redman's tying single sparked Pittsburgh's three-run rally in the eighth inning as the Pirates extended their longest home winning streak in 26 years to nine.

Pittsburgh's streak is its longest since 1978, when the Pirates won 24 in a row at home from mid-August until late September.

* DODGERS 7, DIAMONDBACKS 6: Robin Ventura hit a three-run homer in the top of the ninth inning to lift visiting Los Angeles.

Cubs' Sammy Sosa watches first-inning homer off Ben Sheets, which was all the offense Greg Maddux needed for his 297th win.