St. Louis Dustin Hermanson made an impressive return to St. Louis.
Hermanson, released by the Cardinals last year, took a no-hitter into the seventh inning, and Barry Bonds hit a three-run homer one day before his 40th birthday, helping the San Francisco Giants end St. Louis' five-game winning streak with a 7-2 victory Friday night.
Hermanson (4-3) allowed only a fourth-inning walk to Albert Pujols before Pujols' 28th homer ended his no-hit bid with one out in the seventh. Bonds never moved in left field as the ball sailed far above him -- a drive estimated at 434 feet.
"If you guys go back and look at it, it was shoulder high," Hermanson said. "I've got to tip my cap to him. If he's not the best hitter in the game, he's one of the top two or three."
Hermanson gave up two runs on three hits in 62/3 innings. He struck out five and walked one for his first victory since June 27, then had nothing but good things to say about the Cardinals.
"I have no regrets about what I did over here," Hermanson said. "I wasn't trying to get back at these guys. I have all the respect in the world for Tony La Russa."
The Giants, facing the Cardinals for the first time this year, are 6-1 against St. Louis the last two seasons. The Cardinals lost for only the second time in 14 home games, and have won 15 of 18 overall.
"We're human, everybody here," Pujols said. "Hopefully we bounce back tomorrow. You never look at how you start a series, you look at how you finish."
Bonds' 25th homer of the season, and 683rd of his career, gave the Giants a 6-0 lead in the seventh. He had been 0-for-8 against Jeff Suppan (9-6).
"We needed to pitch to Bonds carefully, and me trying to be too careful I ended up making a mistake," Suppan said.
Cubs 5, Phillies 1
Philadelphia -- Moises Alou, Sammy Sosa and Derrek Lee homered to back Kerry Wood, and Chicago won its third straight.
Alou went 2-for-4 and has six homers and 13 RBIs in his last nine games. Lee's homer was his fifth in nine games, and fifth in 31 at-bats against Brett Myers (5-8).
Sosa hit a two-run drive in the eighth off Ryan Madson, a 445-foot drive to center that ended the pitcher's scoreless streak at 21 innings.
Wood (5-3) improved to 2-0 with a 1.76 ERA since returning from nearly two months on the disabled list caused by a strained right triceps.
Expos 2, Marlins 1
Montreal -- Orlando Cabrera's sacrifice fly in the fourth ended Montreal's 42-inning scoreless streak against Florida, and Jose Vidro hit a go-ahead RBI double in the fifth to lead the Expos.
The Expos had been shut out in each of their last four games against the Marlins, but Cabrera's sac fly off Brad Penny (8-8) tied it at 1. It was the longest such streak in the majors since the California Angels shut out Cleveland over 44 consecutive innings in 1966, according to the Elias Sports Bureau. The New York Highlanders had a major league-record 45-inning scoreless streak against Boston in 1906.
Juan Pierre stole home for the only run for Florida.
Pirates 6, Reds 3
Pittsburgh -- Oliver Perez struck out 11 in seven innings, and Craig Wilson drove in two runs to lead the Pirates. The Pirates are 6-2 since the All-Star break and have won 18 of 24. They improved to 23-23 at PNC Park after starting 9-19 at home this season. In 56 career starts, Perez (6-4) has 10 outings with 10 strikeouts or more, including five against the Reds.
Brewers 7, Astros 6
Houston -- Roger Clemens tied his season high by allowing three home runs, and the Brewers stopped a four-game losing streak on Wes Helms' ninth-inning sacrifice fly. Clemens, who didn't get a decision, left trailing 5-0 after allowing five runs and eight hits in 52/3 innings. Luis Vizcaino (3-2) pitched a scoreless eighth.
Rockies 8, D'backs 2
Phoenix -- Vinny Castilla broke up Casey Fossum's no-hit bid with a two-run homer in the seventh inning, then added another two-run homer in the eighth as Colorado handed Arizona its team-record 12th straight loss.
Dodgers 3, Padres 2
Los Angeles -- Adrian Beltre homered off Rod Beck with one out in the ninth inning. Beltre homered on the first pitch he saw from Beck (0-2) to give the Dodgers their 16th win in 18 games.