SAN FRANCISCO - Jamie Moyer came inches away from escape.
Reliever Antonio Alfonseca made sure Moyer would not be saved the loss.
Both times, it started with - who else? - Barry Bonds, who walked, unintentionally, to start the telling seventh.
It ended with pinch-hitter Eliezer Alfonzo's two-out, bases-loaded double that scored three runs and pushed the Giants toward their 6-2 win.
All of the Giants' runs came in their final two at-bats. Alfonseca's three-run eighth, all with two outs, made a ninth-inning miracle too unlikely.
The loss left the Phillies at 2-3 on their 10-game road trip.
The Giants won without a hit from Bonds.
Bonds was only 8-for-35 against Moyer. However, five of those hits were homers, part of the 743-homer legacy that leaves him 12 shy of Hank Aaron's record. So, Moyer, like every other pitcher in baseball, was careful with Bonds.
Moyer got Bonds to fly out to start the second. Moyer coaxed a groundout in the fourth.
In the seventh, though, Moyer stayed away and walked Bonds - the only walk Moyer allowed all night.
Bengie Molina followed with a single to left that moved Bonds to second, the first Giants runner to pass first base all night.
Pedro Feliz then drove a ball to the leftfield wall, where Pat Burrell redeemed himself from a drop in the sixth with a catch at the wall, but Omar Vizquel singled into shallow center, too shallow for the 42-year-old Bonds to score from second.
Ray Durham fished on a two-strike pitch and flied out weakly to shallow rightfield, where Shane Victorino caught it and fired it in, holding Bonds at third.
Moyer had painted the plate against Durham. He did the same with the first pitch to Alfonzo, who was hitting for Giants starter Matt Morris. Moyer laid none on the outside corner.
The next one was supposed to be a little more inside than it wound up. Alfonzo drove it to left-center. Aaron Rowand gave chase.
It carried just over his glove and rolled to the wall.
Moyer (3-2) settled and retired the next batter, then was done. He had lasted seven innings, which means he has lasted at least six in his six starts this season. He still hasn't allowed more than three earned runs in an outing.
But it was inches away from being enough, especially since the Phillies' big bats remained silent against Matt Morris.
"It's frustrating, just one bad pitch," Victorino said. "He pitched a helluva game, and he left that ball for Alfonzo to hit."
Victorino said Rowand "was a lot closer than I thought he was going to be. You watch him go for the catch and you want to reach out and catch it for him."
"Man, when you pitch that good, you need to win a game," manager Charlie Manuel said. "When you pitch like that, you're supposed to win."
Victorino was most of the offense for the second straight night. He had been rested the last two games in Atlanta before the Phils came to California. Here, he has been unstoppable.
Victorino doubled and scored in the first, the catalyst in the Phillies' two-run inning. He also singled twice and stole second both times, his team-high 10th and 11th steals in 13 chances.
He had three hits in the series opener, too, in which he drove in two runs and stole two bases.
There might have been too much running, actually.
The Phillies ran themselves out of a possible run in the sixth when, with two on and no out, third-base coach Steve Smith sent Ryan Howard from second base on Rowand's single to centerfield - a similar scenario to Bonds being held at third in the seventh by coach Tim Flannery.
Giants centerfielder Dave Roberts has a lousy arm, but Howard, a lumbering runner at best, is still hobbled by a knee sprain suffered April 18. Second baseman Kevin Frandsen's relay came in plenty of time, and Howard was out.
"It's a judgment call," Manuel said. "The second baseman made a helluva throw."
Wes Helms then grounded into a doubleplay, third to second to first.
Howard finished his night at the plate with a strikeout to start the eighth at the hands of reliever Brad Hennessey, who took over for Morris. After his 0-for-2 night, Howard stands at .200 for the season.
Morris (4-1) allowed only those two first-inning runs. The Giants needed him to last, since their bullpen was taxed after Matt Cain managed only three innings the night before.
Alfonseca was fine on Thursday, but he was poor last night for the second time in three outings. With two out, he intentionally walked Bonds, then came unraveled.
Pinch-hitter Mark Sweeney singled and Feliz walked to load the bases for Vizquel, whose single tacked on two more runs. Durham followed with another RBI single to virtually put a comeback out of reach against closer Armondo Benitez, who retired the Phils in order.
Manuel is not concerned about Alfonseca, who Manuel said was a victim of baseball's bad luck - a flare, a bloop and a ground ball.