• Costly mistake: St. Louis's So Taguchi helped San Francisco build a 4-0 lead with a costly error. He couldn't keep Bengie Molina's hard-hit ball in his glove on a tough play as the Giants scored three runs as a result of the miscue.
• Tough loss: The Cardinals' Mike Maroth took the loss despite allowing only two earned runs in five innings of work.
• Figure this: San Francisco's win in St. Louis was only its fourth victory in its last 16 road games.
• Quotable: "Every time up there, he had at least a strike. You can't have it both ways. He has a real good strike zone, so if he wants to take a walk, he can take the walk. We're not going to throw it down the middle to him." -- Cardinals manager Tony La Russa, on pitching to Barry Bonds
-- ESPN.com news services
Giants 4, Cardinals 3
ST. LOUIS (AP) -- Barry Bonds hardly got a chance to move closer to Hank Aaron on Friday night.
Playing in one of baseball's most tradition-rich cities, Bonds grounded out, drew three walks and watched his teammates produce in the San Francisco Giants' 4-3 victory over the St. Louis Cardinals. He remained at 751 homers, four shy of matching Aaron's record.
Noah Lowry (9-6) struck out five in six innings to win his third straight start, and Ray Durham hit an RBI single. Cardinals center fielder So Taguchi did the rest -- with a costly misplay that allowed three runs to score in the fifth and was still being debated afterward.
Bonds called it a night after a four-pitch walk from Troy Percival in the seventh, the slugger's 89th free pass of the season. Rookie Fred Lewis replaced him as a pinch-runner, then took Bonds' spot in left field in the bottom half.
The sellout crowd of 45,245 went after Bonds more times than the Cardinals' pitching staff, and made sure not to waste its final opportunity to boo as Bonds jogged off the field.
"I wanted to get him out of there," Giants manager Bruce Bochy said. "I know yesterday his hip bothered him a little bit. I wanted to get him off his legs. I hope he can play the next two."
Bonds hit his 751st home run in the first inning Tuesday night at Cincinnati, a two-run shot off Aaron Harang. He sat out Wednesday, then had a single Thursday as the Giants lost their series to the lowly Reds.
In his first three plate appearances Friday, all against St. Louis starter Mike Maroth (0-1), Bonds never saw a pitch clocked above 81 mph. Bonds' 10-game hitting streak ended, his longest since going 11 straight games with a hit from Aug. 2-19, 2003.
He offered a thumbs-up as he made his clubhouse exit, huge headphones over his ears.
Bonds walked with one out in the third, as the soft-tossing Maroth jammed him inside with off-speed pitches.
"I threw him a lot of pitches in and stayed pretty soft, threw a lot of slow stuff," Maroth said. "I ended up missing with a couple of pitches when I walked him. He laid off some pitches that were pretty good pitches."
With cameras flashing like lightning bugs from every corner of the ballpark on a pleasant night, Bonds walked on another 3-2 pitch in the fifth.
Durham had an RBI single in the first off Maroth, then the Giants added three more runs on Taguchi's error in center when he couldn't keep Bengie Molina's hard-hit ball in his glove on a tough play.
Molina and the Giants thought it was a hit.
"That's the first time I've seen a guy jump, hit the wall and it's an error," Molina said.
St. Louis loves its baseball history. This is where Mark McGwire tied and broke Roger Maris' single-season record of 61 and also hit No. 70 in 1998. Bonds went on to break McGwire's mark by hitting 73 homers in 2001.
Cardinals skipper Tony La Russa will manage Bonds on the NL All-Star team Tuesday night in San Francisco. The 42-year-old Bonds is set to start in the outfield.
"Every time up there, he had at least a strike," La Russa said. "You can't have it both ways. He has a real good strike zone, so if he wants to take a walk, he can take the walk. We're not going to throw it down the middle to him."
Lowry didn't let a runner past second base until Ryan Ludwick scored on Juan Encarnacion's RBI double in the sixth to put the Cardinals on the board. Kevin Correia pitched two scoreless innings, but the Giants' bullpen nearly blew it.
Brad Hennessey put two runners on in the ninth before pinch-hitter Chris Duncan lined a two-run single off Jack Taschner to make it 4-3. Bochy then went to Randy Messenger, who got Taguchi to fly out for his first career save.
"The only guy with closing experience is [Steve] Kline," Taschner said. "If it takes four of us to get three outs in the ninth, I'm happy to oblige. I don't take it as an insult. I take it as we want to win games. ... None of us has pitched long enough to say anything."
Omar Vizquel's sixth-inning single was his second hit of the game and tied him with countryman Luis Aparicio for most hits by a shortstop since 1957 with 2,532.
"Everybody recognizes me as a defensive shortstop," the 11-time Gold Glove winner said. "Nobody talks about the offensive numbers. I've been around a long time and to get as many hits as one of my heroes is really special."
Maroth is winless in his first three starts with St. Louis since being acquired in a June 22 trade with the Tigers. He had a pair of no-decisions in his first two outings with the defending World Series champions.
St. Louis -- coming off a pair of one-run victories against Arizona -- missed a chance at its first three-game winning streak since June 3-6. The Giants are unbeaten in the season series after taking a two-game set April 18-19 in San Francisco.
St. Louis' Scott Spiezio singled as a pinch hitter in the ninth, his first game action since June 26 because of an infected finger. ... Duncan has seven RBIs as a pinch hitter this season.