SAN FRANCISCO -- Benito Santiago hit a grand slam as the San Francisco Giants beat the Pittsburgh Pirates 8-3 Saturday.
Santiago followed Barry Bonds' third walk in the seventh with his eighth career slam against reliever Mike Lincoln (0-3).
D-backs 9, Marlins 2
PHOENIX -- Randy Johnson fanned 14, passing Tom Seaver for fifth place on the career strikeout list as the Arizona Diamondbacks beat the Florida Marlins.
Johnson (17-4), who pitched complete games in his last two starts, went eight innings this time. He gave up five hits and walked two in his fourth consecutive victory.
Astros 8, Braves 5
HOUSTON -- Rookie Kirk Saarloos won his fifth straight start and slumping Lance Berkman returned to the lineup and drove in two runs as the Houston Astros beat the Atlanta Braves.
The largest crowd of the season in Houston -- 43,332 -- saw the Astros send the NL East leaders to only their third loss in 12 games.
Cubs 15, Rockies 1
DENVER -- Sammy Sosa hit a trio of three-run homers to tie a franchise record with nine RBIs, then left in the sixth inning as Chicago routed Colorado.
Sosa connected in successive at-bats in the third, fourth and fifth innings. He took over the major league lead with 38 homers and matched Johnny Mize's record of six career three-homer games.
Reds 9, Padres 0
CINCINNATI -- Ryan Dempster escaped two bases-loaded threats during a make-or-break start, and Jason LaRue homered and drove in three runs as Cincinnati beat San Diego.
The Reds stayed in a second-place tie with Houston in the NL Central, two games behind St. Louis.
Brewers 5, Expos 2
MILWAUKEE -- Jose Cabrera pitched six solid innings, and Eric Young had four hits as Milwaukee snapped a five-game losing streak against Montreal.
Red Sox 2, Twins 0
BOSTON -- Pedro Martinez extended his career-best scoreless streak to 31 innings, blanking Minnesota through the eighth and pitching the Boston Red Sox past the Twins 2-0 Saturday.
Athletics 8, Yankees 0
NEW YORK -- Cory Lidle shut out the Yankees for eight innings, and Miguel Tejada and Eric Chavez homered off David Wells (12-6) to lead Oakland past New York.
Mariners 7, White Sox 3
CHICAGO -- Bret Boone hit his 20th home run, breaking an eighth-inning tie and sending Seattle over Chicago.
Angels 11, Blue Jays 4
TORONTO -- Garret Anderson hit a three-run homer in a seven-run third inning as Anaheim beat Toronto.
Indians 4, Rangers 3
CLEVELAND -- Karim Garcia lined a game-winning single off the left-field wall with one out in the ninth inning, lifting Cleveland over Texas.
Orioles 3, Tigers 2
DETROIT -- Tony Batista hit a go-ahead RBI single in the eighth inning as Baltimore rallied from two runs down to beat Detroit.
Devil Rays 13, Royals 6
KANSAS CITY, Mo. -- Jared Sandberg hit two of Tampa Bay's club-record six home runs in a win over Kansas City.
-- From wire reports