Barry Zito earned his first win of the season last night after eight straight losses, leading San Francisco past host Florida, 8-2.

Bengie Molina and Aaron Rowand hit consecutive home runs, and Jose Castillo also connected to help the Giants win their third consecutive game.

Zito (1-8) allowed one run and three hits in 6 1/3 innings. He struck out five and walked four for his first victory since Sept. 30, 2007, when he defeated the Dodgers in San Francisco's season finale.

Making his 10th start this year, the lefthander avoided becoming the first starter in franchise history to begin a season 0-9. The 2002 AL Cy Young Award winner with Oakland, Zito has been a bust in San Francisco since signing a $126 million, 7-year contract before last season.

Rowand drove in three runs, and Molina and Rich Aurilia each had two RBI to lead the Giants.

Dan Uggla hit his 15th homer for Florida. The NL East-leading Marlins were coming off a three-game sweep of Arizona, which leads the NL West.

In other NL games:

* At Atlanta, Doug Davis (2-1) was successful in his return from cancer surgery, allowing one run in seven innings in Arizona's 11-1 rout of the Braves.

* At Pittsburgh, Reed Johnson hit a three-run home run and doubled twice to support Carlos Zambrano (7-1) and the Chicago Cubs routed the Pirates, 12-3. Zambrano also went 4-for-5 at the plate.

* At Washington, the Nationals turned Milwaukee shortstop J.J. Hardy's sixth-inning error into four unearned runs in a 5-1 victory over the Brewers.

In AL games:

* At Cleveland, Jarrod Saltalamacchia hit his first career grand slam to help Texas beat the Indians, 13-9. Cleveland also lost an apparent three-run homer by Ben Francisco. The play was ruled an RBI double, the latest in a string of home-run calls botched by umpires recently.

* At New York, Andy Pettitte (4-5) struck out nine to win for the first time in more than a month, Shelley Duncan hit a go-ahead, three-run homer and the Yankees beat Seattle, 13-2.

* At Toronto, Roy Halladay (5-5) won for the third time in four starts, Marco Scutaro matched a career high with four RBI and the Blue Jays beat Kansas City, 7-1.

* At St. Petersburg, Fla., Matt Garza (3-1) took a four-hitter into the eighth inning and Carl Crawford snapped a 0-0 tie with a fifth-inning single to help Tampa Bay beat Baltimore, 2-0.

* At Detroit, Kevin Slowey (1-4) pitched seven shutout innings, allowing four hits and three walks, as Minnesota beat the Tigers, 9-4.

* At Chicago, Joe Saunders (8-1) took a shutout into the ninth inning, Torii Hunter homered and the Los Angels Angels snapped the White Sox' eight-game winning streak with a 3-1 win.

Noteworthy

* Bobby Cox has agreed to a 1-year contract extension to manage the Atlanta Braves through 2009. In another Braves matter, righthander John Smoltz will begin a minor league rehabilitation assignment with Double A Mississippi today.

* Cincinnati manager Dusty Baker was suspended for two games, and New York Yankees manager Joe Girardi and San Diego hitting coach Wally Joyner were penalized one game yesterday after recent arguments with umpires.

* Milwaukee placed struggling closer Eric Gagne on the 15-day disabled list with right rotator-cuff tendinitis.

* The Washington Nationals optioned lefthander Matt Chico and reliever Chris Schroder to Triple A Columbus and purchased the contracts of outfielder Ryan Langerhans, righthander Brian Sanches and lefthander Charlie Manning.

* The Los Angeles Angels are expected to announce they will host the 2010 All-Star game, returning the event to Anaheim for the first time since 1989. *