Lowry recorded a franchise season high of eight strikeouts in 6 2/3 innings to earn his fourth consecutive win.
"I feel like I was throwing three pitches for strikes," Lowry said.
Lowry said that he has a better understanding of mechanics this season, and the left-hander showed it by holding the Phillies to three runs (one earned) on five hits.
"He used his fastball on both sides of the plate well today," manager Bruce Bochy said. "I thought he showed great composure, too, because we did [make] a few mistakes there, but what's important is that he kept going."
The mistakes Bochy was referring to were an uncharacteristic four errors for San Francisco, a club that's been errorless in the last 16 of 28 games. Two of the errors resulted in runs.
Lowry left with a one-run lead and two outs in the sixth inning after giving up an RBI single and walking a batter.
"You can't walk a guy with four straight pitches in that situation with the potential tying run in scoring position. That can't happen," Lowry said.
Pitching coach Dave Righetti was ejected just minutes after Lowry exited. First-base umpire Jim Reynolds tossed Righetti for questioning a disputed checked swing with reliever Jack Taschner on the mound.
The disputed call ended up not making a difference, as Taschner got the third out by striking out Jayson Werth and preserved the Giants' one-run lead.
Bonds' solo home run to center field opened the second inning and came off the first pitch the slugger saw from Phillies right-hander Jon Lieber. It was Bonds fifth homer off Lieber, his 10th of the season and the 744th of his career, bringing him just 11 shy of tying all-time leader Hank Aaron.
The home run took away the only lead the Phillies would see, and Bonds was walked in his next three at bats.
Feliz put the game out of reach with a three-run blast in the bottom of the eighth off the third pitch of reliever Yoel Hernandez's Major League career. The Giants' four-run eighth put a nail in it, and reliever Scott Munter added the finishing touches for the save in his season debut.
Munter, who was recalled on Friday in the place of the injured Russ Ortiz, gave up one hit and one walk in the ninth before settling down to get the next three outs. After the game, as he expected, Munter was optioned back to Triple-A Fresno. The Giants will purchase the contract of Sunday's expected starting pitcher, Tim Lincecum, on Sunday.
Backup catcher Alfonzo added his first home run of the season with a solo shot to left field in the seventh inning. The home run did a lot to cancel out the four batters who stole base with Alfonzo behind the plate, two of them on throwing errors.
"We scored runs, and we won, so we were able to put those errors aside," Ryan Klesko said.
Klesko was a big part of putting those errors aside and getting the win, as he helped the Giants pull ahead in the third inning by driving a two-run triple to right-center. Dave Roberts had opened the third inning with a double and moved into scoring position on a single by Randy Winn.
Saturday's win brought the Giants within one game of the National League West-leading Dodgers.