Sammy Sosa's struggles were so prolonged that last week he volunteered to drop to No. 5 in the Chicago Cubs' batting order.

Whether it's coincidence or not, the Cubs have won eight of nine since Sosa's demotion, taking back the lead in the NL wild-card race.

Sosa's opposite-field, three-run homer yesterday keyed an 8-3 victory over the Houston Astros at Wrigley Field.

"He's swinging a lot better. Today he had the big home run, and that's the guy we all know," said teammate Aramis Ramirez, who followed Sosa with a home run of his own in a five-run third.

Sosa's 568th career homer landed just inside the right field foul pole to give the Cubs a 4-2 lead. Sosa was in a 14-for-75 slump when he connected and needs one homer to reach 30 for a 10th straight season.

He declined to comment after the game.

Mark Prior (4-3) got his first win in three weeks and his first at Wrigley Field since Game 2 of the NL Championship Series last October, needing 116 pitches to get through six innings. He missed the first two months this season while on the disabled list with a sore elbow and Achilles' tendon.

Chicago's Nomar Garciaparra went 2 for 5 with an RBI while wife Mia Hamm played for the U.S. women's soccer team in its 2-1 win over Brazil in the gold medal game of the Olympics.

"Nomar, we have one for the family," Hamm said on the live telecast after the game.

Garciaparra didn't want to know the score or outcome of Hamm's game during his own. After the Cubs' victory, he went into a video room to watch a replay on a DVD that had been made for him. He was not available for comment.

* PADRES 10, METS 3: Adam Eaton shut down New York through seven innings to win his seventh straight road start, and San Diego completed a four-game sweep.

It was the fifth straight loss for the Mets, who never held a lead during the series and were outscored 26-8, with half their runs coming in the ninth inning. New York managed just 22 hits in the four games.

* REDS 1, CARDINALS 0: Aaron Harang threw a three-hitter for his first career complete game and Sean Casey homered to lead Cincinnati at home.

Chris Carpenter (13-5) also pitched a three-hitter and struck out 11 for St. Louis, but earned only a tough loss.

A computer virus prevented scoreboard displays of rosters, line scores and individual statistics at Great American Ball Park.

* GIANTS 5, MARLINS 0: In Miami, Brett Tomko pitched a four-hitter for his first career shutout, and San Francisco remained one game behind NL wild-card leader Chicago.

Tomko (7-6) threw his first complete game this season, allowing four singles and one walk while striking out four. Tomko improved to 5-0 in seven starts against Florida.

* DODGERS 10, EXPOS 3: Adrian Beltre hit his major league-high 41st homer and closer Eric Gagne was cheered wildly in what was likely his final game in his home town.

Despite a seven-run lead, the Dodgers used Gagne in the ninth inning. The Montreal native received a standing ovation when he pitched. He retired three in a row after a leadoff walk.

* BRAVES 6, ROCKIES 4: Mike Hampton (10-9) helped himself with an RBI single and host Atlanta pushed its NL East lead to a season-high 91/2 games.

The Braves completed a three-game sweep and won their fourth in a row. The Rockies have lost four straight.

"It stinks anytime you get swept," said Colorado's Todd Helton.

Adam Eaton wins his seventh straight road start, helping the Padres complete a four-game road sweep of the Mets.