SAN FRANCISCO -- Brad Hennessey is no longer worrying each outing which pitch will be the one that sends him back to the minors.
That mind-set along with some minor tweaks to his delivery are making quite a difference -- and all but earned him a longer stay in San Francisco.
Ray Durham added two hits and scored a run for the Giants, who won for the third time in four games on a day they honored retired closer Robb Nen, the club's all-time saves leader, in a pregame ceremony.
Hennessey (3-2), recalled late Friday to start in place of struggling lefty Kirk Rueter, made his sixth start of the season and 13th of his career. Hennessey spent his time at Triple-A Fresno working on a more compact windup, and he's liking the results.
"I came up here with the attitude to throw the best I can and whatever happens happens," Hennessey said, "and not to worry as much about my fate as I did before."
He earned his first win since May 12 at Houston and ended a two-start losing streak. The right-hander impressed the Giants with a strong June in the minors, going 3-0 in five starts.
The 25-year-old Hennessey outpitched Matt Morris (10-2), who was trying to win his third straight start and move closer to his 100th career victory -- he's still three wins away.
"So, what about Hennessey, the mystery starter?" manager Felipe Alou said. "He looked like a different guy on the mound, more relaxed. We owe it to that guy to give him a little more credit, more than a guy used for emergency."
Tyler Walker completed the three-hitter, pitching the ninth for his 13th save and 12th since taking over the closer job May 12. He came out to the mound to Nen's signature song "Smoke on the Water," finishing just the Giants' third shutout.
A day after Mark Mulder pitched seven shutout innings for his 10th win of the year in a 3-1 St. Louis victory, Hennessey hung tough. He went to 3-1 counts on three of the first four St. Louis batters, including walking Jim Edmonds.
Hennessey also gave up a first-inning single to Albert Pujols, then faced the minimum in each of the next five innings. He got two double plays and retired 11 straight during one stretch.
"Morris pitched well enough to win, but Hennessey pitched better," Cardinals manager Tony La Russa said. "He was outstanding."
He allowed three hits, struck out two and walked one in place of Rueter, demoted to the bullpen Wednesday after his winless stretch reached nine starts in Monday's 11-10 loss to the Reds.
Morris faced the minimum through four before allowing three straight singles to start the fifth, including a line drive to right by Tucker that put San Francisco ahead. Pedro Feliz grounded into a double play to drive in a run moments later and make it 2-0.
Morris threw just 93 pitches in eight effective innings. He allowed six hits, struck out three and didn't walk a batter for the third straight start.
He's pleased with his first half and how he bounced back after offseason shoulder surgery.
"I'm kind of surprised at my record coming off surgery," he said. "I didn't know what to expect this season, so I'm thankful and grateful for my statistics. I'm looking forward to having a great second half."
The Cardinals had won five out of six and six of eight, but couldn't muster enough offense. After working the count to 3-2 against Hennessey in the sixth, So Taguchi fouled off nine pitches before grounding into a 6-4-3 double play.
The highlight for the Cardinals came on defense.
Edmonds made a great grab in the second on a hard-hit ball to center field by Durham. Running toward the wall with his back to the plate, Edmonds stretched out to make the play and fell to the ground afterward.
Moises Alou, the Giants' lone representative in next week's All-Star game in Detroit, had two hits in the franchise's 9,999th victory. His managing father is a coach on La Russa's NL staff.
Mike Mahoney started at catcher for St. Louis a day after being recalled from Triple-A Memphis.
- LaTroy Hawkins pitched his second perfect inning in as many outings with a 1-2-3 eighth. He left the team after the game to attend a family member's funeral Sunday in Indiana.
- The Giants didn't strand a runner until the seventh.
- It was Hennessey's first career appearance vs. St. Louis.
- Before the game, the Cardinals activated LHP Randy Flores from the 15-day disabled list and optioned LHP Carmen Cali to Triple-A Memphis.
- Giants SS Omar Vizquel had his eight-game hitting streak snapped.
- The game drew 42,423 for the waterfront ballpark's 10th sellout this year.