SAN FRANCISCO (AP) -- Matt Cain managed to hold off from thinking about his no-hit bid for all of four innings. He had great stuff, so getting through the game without allowing a hit seemed like a realistic possibility.
The Giants' rookie nearly did it, too.
"I accidentally started thinking about it in the fourth," Cain said. "I was going to keep going until they dragged me off the mound."
Chone Figgins lined a clean single to center on Cain's 128th pitch of the game -- a 3-2 fastball -- with two outs in the eighth to end the longest no-hit bid in the majors this year. Carlos Zambrano
of the Chicago Cubs no-hit the Houston Astros for 7 1/3 innings earlier this month.
Looking for baseball's first no-hitter in more than two years, Cain struck out a career-high 10 batters on the way to winning his fifth straight decision, striking out the side in the seventh as the Giants bounced back at home after being swept by the Mariners in a weekend series at Seattle.
"He really wasn't around the plate to me all night," Figgins said. "I was able to foul a fastball at my knees to stay alive, then he got the other one further up and I hit it. It's nice not to get no-hit, but it's still a loss."
The 21-year-old Cain (6-5), a first-round draft pick by the Giants in 2002, allowed only that hit, didn't give up an earned run and walked four in a 131-pitch outing.
He has shown during his recent run that San Francisco made the right decision to stick with him through his early-season struggles and not send him down to the minors. Manager Felipe Alou opted instead to skip his turn in the rotation once last month to give the right-hander time to work on his mechanics.
"Well, I don't think we're going to do that now," Alou said. "He didn't add a new pitch or new delivery or anything -- there's really nothing new. It's just more confidence."
Fans jumped to their feet to cheer for Cain as pinch-hitter Tim Salmon worked the count full in the eighth and then struck out looking for the second out of the inning before giving him a rousing ovation as he walked off the mound.
Alou said the Giants were talking about giving Cain an extra day before his next start. His teammates hated to see the no-hit bid broken up.
"You always feel bad," shortstop Omar Vizquel said. "Any time you go into the ninth or eighth and they break up a no-hitter, it's stopping your heart."
Armando Benitez allowed the only other hit in the ninth before finishing for his first save since June 3 and fifth overall.
Bonds, who hit his 718th career home run Friday at Safeco Field, flied out to center in the fourth and grounded out to second in the sixth after his first-inning double.
This marked the first regular-season meeting between these clubs since the wild-card Angels beat the Giants in seven games in the 2002 World Series.
The Angels hadn't played in San Francisco since Game 5 of the Series, one Los Angeles manager Mike Scioscia would rather forget.
"We got stuck 16-4," he said. "I don't want to dredge up those memories. We tried to sneak out of here with our tails between our legs."
After Figgins walked to start the game, he stole second and rookie catcher Eliezer Alfonzo made a wild throw trying for a pickoff for a two-base error when the ball took a strange bounce into left-center that allowed Figgins to score an unearned run.
Kelvim Escobar (5-8), making his first career start against the Giants, lost his sixth straight decision since beating Seattle on May 12, a winless stretch of seven starts. But he hasn't allowed more than two earned runs over his last four starts.
"This is a game we've seen much too often, especially with Kelvim on the mound," Scioscia said.
After Jose Vizcaino walked to start the second, Escobar got 12 straight outs before Vizquel's infield single in the sixth.
Slumping Angels slugger Vladimir Guerrero went 0-for-4 to extend his hitless stretch to 14 at-bats. Mike Napoli struck out three times before hitting a ninth-inning single for the Angels, who are in a stretch of playing 15 straight games against the NL West. Los Angeles is 1-6 in interleague play this season after going 12-6 against the National League in 2005.
Randy Winn singled in the first and has a 12-game hitting streak against the Angels. He scored on Bonds' double.
John Montefusco pitched the Giants' last no-hitter in a 9-0 victory at Atlanta on Sept. 29, 1976. Randy Johnson pitched the majors' last no-hitter, throwing a perfect game for Arizona in a 2-0 win at Atlanta on May 18, 2004. ... Guerrero is in a 6-for-45 (.133) funk over his last 11 games. ... Figgins stole his 24th and 25th bases of the year. ... Giants right fielder Moises Alou, scratched before Sunday's game at Seattle with back spasms, was held out of the lineup for a second straight day despite doing OK on the flight home to San Francisco. "He's not ready today," manager Felipe Alou said. "Even if he was, I said I was going to get him another day off." ... Cain had never faced the Angels.