PHILADELPHIA -- By the time Matt Morris gave up a hit, he already had three of his own.
Fred Lewis hit his first career grand slam, and Ray Durham and Pedro Feliz both hit three-run shots for the Giants. Barry Bonds was 1-for-2 with two walks and stayed stuck on 746 career homers, 10 shy of breaking Hank Aaron's record.
Shane Victorino's single with two outs in the sixth inning was the only hit off Morris (6-2). He struck out three, walked three and lowered his ERA to 2.66.
Carlos Ruiz had Philadelphia's other hit, a single off Steve Kline in the eighth.
"He's been a stopper when we need somebody to pitch well," Giants manager Bruce Bochy said of Morris, who improved to 5-2 after his team loses. "He really had good stuff, great command and good movement on his fastball. He's pitching with a lot of confidence."
The Phillies have lost four straight at home after sweeping a three-game series in Atlanta to move a season-best two games above .500.
San Francisco scored five runs in the second inning as Adam Eaton (5-4) unraveled after he didn't get a couple of close calls.
Eliezer Alfonzo singled with one out and Omar Vizquel walked. Alfonzo was picked off second base by catcher Ruiz as Morris appeared to bunt through a pitch. It was called a ball and manager Charlie Manuel was ejected by first-base umpire Tim McClelland for arguing.
Morris followed with a single and Randy Winn walked to load the bases. Eaton nearly got out of the jam against Lewis, but barely missed outside on a 2-2 pitch. Lewis hit the next pitch over the wall in left to give the Giants a 4-0 lead.
After Mark Sweeney walked, Bonds doubled off the fence in right-center to make it 5-0.
Morris, a career .161 hitter coming in, finished 3-for-4 with a double and scored twice.
"Just a lucky night," Morris said. "I was able to hit the ball up the middle after the whole bunt episode."
Lewis' only other homer came when he hit for the cycle against Colorado on May 13, four days after being called up from Triple-A Fresno.
"I'm just trying to make a name for myself and trying to stay in the big leagues as long as possible," Lewis said.
Durham's three-run drive off Mike Zagurski put the Giants ahead 8-0 in the fourth. Feliz connected off Clay Condrey in a five-run fifth that sent fans toward the exits.
They hardly got a chance to boo Bonds, who was intentionally walked in the first, flied out to left in the fourth and left for a pinch runner after walking in the fifth.
Eaton allowed five runs and six hits in two innings. His ERA went from 5.73 to 6.28, a major disappointment for someone who signed a $24.5 million, three-year contract in the offseason.
"When the calls don't go your way, a lot of bad things can happen," Eaton said. "Regardless of that, I've got to get guys out."
It was the first time the Phillies were shutout since Sept. 10 at Florida. ... Eaton has just four quality starts -- three earned runs or less in six innings or more -- in 11 outings. ... Francisco Rosario pitched one inning in relief of Eaton before he left with a bruised left knee one inning after Morris lined a single off it. ... The Giants averaged 3.9 runs in Morris' first 10 starts. ... Manuel has three ejections this season. ... Victorino threw out Winn at the plate to end the first inning for his eighth outfield assist and the team's 21st.