Morris hit a two-run double in the eighth inning and pitched a three-hitter, lifting the San Francisco Giants past the wild card-leading Reds 4-1 Friday night.
Morris retired 18 straight batters to finish his second complete game of the season and 20th of his career. He ended a seven-start winless stretch with his first victory since July 14 against Philadelphia.
"That was vintage him," outfielder Steve Finley said. "He's pitched a lot of games like that for us. We haven't given him many runs. We haven't given him much breathing room. I thought he took matters into his own hands."
Ken Griffey Jr. hit his 26th home run of the season and No. 562 of his career for the Reds, who fell out of a virtual tie with St. Louis for first place in the NL Central.
Omar Vizquel stole three bases for the Giants, the first San Francisco player to do so since he did it in July 2005.
"I felt good. Slow pitcher," he said with a grin.
Shea Hillenbrand hit a solo home run to help Morris win his fourth straight decision against the Reds dating to a defeat on June 20, 2004.
With the Giants ahead 2-1, manager Felipe Alou sent Mark Sweeney to the on-deck circle as a decoy in the eighth. After the Reds intentionally walked rookie Eliezer Alfonzo with two outs, the crowd roared when Morris came to bat.
Morris delivered, hitting a liner into the left-center gap for his 10th hit in 52 at-bats this season and his third double. Morris (9-11) won with an efficient 99-pitch effort.
"He was lobbying on the mound," Alou said.
Finley drew a one-out walk from Ryan Franklin, Thursday night's winning pitcher, then stole second. Catcher Javier Valentin made a throw that was offline trying for the pickoff and the ball got past second baseman Brandon Phillips, allowing Finley to reach third. Pedro Feliz then struck out swinging and the Reds intentionally walked Alfonzo for the second straight time to bring up Morris (9-11).
"A lot of luck," Morris said.
Griffey connected with two outs in the first, sending the ball into the elevated seating area in right-center. He moved within one home run of tying Reggie Jackson for 10th place on the career list.
The Giants tied it at 1 in the bottom half on Barry Bonds' RBI single up the middle. The hit gave him 1,351 RBI as a Giant, moving him past godfather Willie Mays and into sole possession of second place on the San Francisco list behind Willie McCovey's 1,388.
Hillenbrand hit a towering homer to left leading off the third against Aaron Harang (13-9). It was Hillenbrand's fourth homer since joining the Giants in a trade from Toronto on July 21 and his 16th overall this season.
"When I get into the rhythm of the game, I have better control," Morris said. "Aaron's having a great year. I knew he wasn't going to give up many."
Ray Durham had his 14-game hitting streak snapped, going 0-for-4 for the Giants.
Morris allowed a leadoff double to Edwin Encarnacion in the fourth, then didn't permit another baserunner. The right-hander struck out five and didn't walk a batter for the fourth time this year.
"Aaron Harang has a good outing every time," Reds manager Jerry Narron said. "He did a great job of getting out of the first inning. Morris just pitched a little better."
Harang missed his chance to become the NL's second 14-game winner. He allowed nine hits and two runs in seven innings, struck out one and walked two.
The 42-year-old Bonds, who hit his 725th career homer Monday against Arizona, planned to take off Saturday afternoon's game after playing in eight straight games. Twice in the season's second half the slugger has played 12 straight games -- including 10 consecutive days following the All-Star break -- and 11 in a row in the first half of the year.
"I'm exhausted," Bonds said in the dugout before the game. "I've been playing every day."
- Vizquel stole his 21st base in the first after a one-out single, swiped No. 22 of the year in the seventh after another single, then stole again moments later for his 23rd.
- Harang is 7-6 in 15 road outings this year.
- It warmed up Friday to 65 degrees at first pitch after Thursday's game time temperature of 58.