SAN DIEGO -- For a team that struggles to score runs at home, Orlando Hudson's sacrifice fly was a welcome sight.
Hudson hit a sacrifice fly in the ninth inning to lift the Padres to a 1-0 win over the Milwaukee Brewers on Thursday night.
San Diego, which struggles offensively at spacious Petco Park, used a typical Padres inning to score the winning run -- a single, stolen base, two intentional walks, a sacrifice bunt and, finally, Hudson's sacrifice fly.
"That's how you score a run to win a game," said San Diego manager Bud Black.
Activated off the 15-day disabled list before the game, Hudson hit a line drive to right field on the first pitch off Marco Estrada (0-2) with the bases loaded to score pinch runner Eric Patterson with the winning run.
Patterson scored without a throw from right fielder Corey Hart, who had to backpedal to make the catch.
"It feels good, not just for myself, but for the whole team," Hudson said.
Hudson had been on the 15-day disabled list with a strained right hamstring.
"Orlando brings a presence of experience, calmness and plays the game with energy," Black said. "That is infectious."
He bunted to move up the runners and Chase Headley was walked intentionally to load the bases and bring up Hudson. The Brewers brought in left fielder Mark Kotsay to play between first and second as a fifth infielder.
"I didn't want to fall behind and I wanted to throw the change-up real low," Estrada said. "If I threw it more away, I would have had a ground ball. I got too much of the plate and he hit it deep enough to score the guy."
Heath Bell (2-0) pitched the ninth inning for the win.
Milwaukee left fielder Ryan Braun left the game in the fifth inning with soreness in his left shoulder. Braun, the NL leader with 12 home runs, flied out to end the top of the fifth. Carlos Gomez came into the game in center field with Kotsay moving over to replace Braun in left.
Braun extended his hitting streak to nine games with a first-inning single.
San Diego, one of majors' worst run-producing teams, came off an eight-game road trip where they scored six runs or more six times. The Padres came home Wednesday and dropped a 5-2 decision in the series opener to the Brewers.
Milwaukee, which dropped to 8-17 on the road, was shut out for the fifth time this season. There are only three teams in the majors who have been shut out more than the Brewers, including San Diego which leads with eight.
Narveson allowed five hits with four strikeouts and one walk over 7 1/3 innings before being replaced by Kameron Loe. Harang gave up six hits in eight innings with four strikeouts and two walks.
"The slider was really working," Harang said. "The more I could throw it for strikes, it made my fastball that much more effective."
Harang set down the Brewers in order just twice and held them hitless in six at-bats with runners in scoring position. Milwaukee stranded eight runners overall.
"We had chances to win that game," Brewers manager Ron Roenicke said. "Early on, we got people on base and we just didn't get them in."
San Diego twice got a runner to third base with two outs, but Narveson escaped both times.
San Diego has the NL's worst home record at 7-15. ... Hart extended his hitting streak to 10 games. ... Padres SS Jason Bartlett had his 10-game hitting streak snapped. ... Brewers starting pitchers Zack Greinke and Shaun Marcum flew back to Milwaukee before the game on Thursday. Greinke will start Friday night's game against Colorado when Milwaukee opens a nine-game homestand. Marcum is slated to start on Saturday night. ... The San Diego State men's basketball team was honored before the game. The Aztecs, who advanced to the NCAA Sweet 16, has senior guard D.J. Gay throw out the first pitch to Padres manager Bud Black, a San Diego State alum.