SAN FRANCISCO -- Carlos Zambrano was ready to talk about next year after throwing his first complete game since his no-hitter last year.
"Obviously this is a bad year for me," Zambrano said. "I can only get 10 wins this year, and I don't want to say I'm frustrated because I don't use that word. Disappointing, because I could have won many games, but baseball is like that."
Cubs manager Lou Piniella was slightly more effusive.
"That's Zambrano's best game of the year by far," he said. "He had good stuff the whole game, used all his pitches and outside of maybe one or two hitters, he stayed ahead in the count the whole way. A really good pitching performance. It was a matchup between two really good pitchers, [Tim] Lincecum and Zambrano and our guy pitched a little better tonight."
"He was aggressive and got right to the point," Cubs catcher Koyie Hill said. "There wasn't any fiddling around. He came right after guys. For Z, a guy who has swing-and-miss stuff, for his pitch count to be what it was going into the ninth inning was incredible. Z, even in his worst year is going to have Cy Young type stuff. Its just how good he's capable of being."
The Cardinals, who lost 2-1 to Colorado, saw their magic number to win the division remain at one.
Lincecum (14-7) lasted seven innings, giving up two runs and seven hits. He walked three and struck out seven for the Giants, who fell five games behind the Rockies and 1½ games behind the Atlanta Braves. Lincecum had one of the Giants' hits.
Giants rookie Buster Posey made his first career start behind the plate, catching two former Cy Young Award pitchers and facing a pitcher who threw a no-hitter.
"We have guys with good stuff on our staff but both pitchers tonight had great stuff," Posey said. "I told Tim 'You lead the way and I'll get on the same page as you.' Zambrano has a slider that was great. I felt my hitting was a little off but I felt I saw the ball OK."
Zambrano (9-6) struck out nine and walked one in winning his second straight decision and extending his unbeaten streak to five games. It was his fourth career shutout and ninth complete game.
"We faced a great pitcher," Giants manager Bruce Bochy said. "He was that good. I don't know who would have hit him tonight. We hit maybe one or two balls hard all night. We just got shut down completely."
The Giants managed to get one runner as far as third against Zambrano, who retired nine of the first 10 hitters he faced and 17 of the final 18.
Zambrano faced the Giants for the first time since August 2007 and improved to 5-1 against them in nine games, including eight starts.
"This is what you expect from him on a consistent basis," Piniella said. "This is the type of game you expect from this young man."
Kosuke Fukudome doubled to lead off the sixth and scored on Theriot's single.
In the seventh, Zambrano beat out a potential double-play ball, allowing Bobby Scales to score.
Randy Johnson made a rare relief appearance in the ninth -- making it two Cy Young winners pitching for the Giants -- and allowed a single to Fuld and Zambrano's RBI double.
- Cubs 1B Derrek Lee missed the game with neck spasms.
- Giants IF Edgar Renteria will undergo surgery to remove bone chips in his right elbow Saturday and will miss the rest of the season.
- Cubs RHP Kevin Gregg missed his fourth game with mild inflammation on the left side of his rib joint.