This time Roy Halladay didn't have to be perfect, mainly because Shane Victorino ended an offensive swoon that has afflicted many of his Phillies teammates.

Victorino went 2 for 4 with a two-run home run and two runs scored as the Phillies ended a four-game losing streak with Friday's 3-2 win over the San Diego Padres at Citizens Bank Park.

In his previous 15 games, Victorino had scored one run. He was batting .176 (9 for 51) with one RBI in his previous 13 games.

Brad Lidge pitched a scoreless ninth inning to earn the save.

After Halladay's 1-0 perfect game win at Florida against the Marlins last Saturday, the suspense went out early when the third batter of the game, San Diego's Adrian Gonzalez, lined a single to centerfield.

On the other side, it was Halladay who ended a no-hit bid, albeit an early one, by San Diego with a one-out single to right field off Mat Latos in the third inning.

Victorino then hit a two-run home run to right field, giving the Phillies a 2-1 lead.

Gonzalez tied it with a fifth-inning sacrifice fly.

Victorino began a fifth-inning rally with a double and eventually scored on Latos' two-out bases-loaded walk to Jayson Werth that gave the Phillies a 3-2 lead.

Not only did the Phillies take the lead, they ended up chasing Latos as well. He lasted only five innings, throwing 103 pitches.

Latos struck out six, but he also walked four, and of course, his biggest downfall was an inability to deal with Victorino.

The Phillies' recent slide has been well-documented. Entering Friday, they were 2-9 in their previous 11 games and had scored just 14 runs in that span. They had not scored more than three runs in any of the 11 games.

And they had to face the Padres, among the biggest surprises this year. After going 75-87 last year, the Padres weren't given much preseason attention.

Few would have guessed that San Diego would enter Friday's action with the best winning percentage in the National League (32-21, .604).

Halladay wasn't at his best, at least by his standards, but he fought his way through seven effective innings.

The righthander allowed two runs on 10 hits and stranded nine baserunners. He also struck out seven and walked one. Halladay has allowed two earned runs or fewer in 10 of his 12 starts this season.

He was replaced in the eighth inning by Jose Contreras, but the righthander didn't last the inning. Two of the first three batters reached base when Nick Hundley was hit by a pitch and Tony Gywnn walked.

With one out, the Padres then sent former Phillie Matt Stairs to the plate to pinch-hit for pitcher Edward Mujica. Contreras was replaced by lefthander J.C. Romero, and Padres manager Bud Black sent righthanded hitter Oscar Salazar to pinch-hit for Stairs.

Salazar walked to load the bases.

Rightfielder Chris Denorfia then hit into a double play to Placido Planco at third base. Planco tagged the bag for the force and threw over to first for the third out.

Denorfia replaced Will Venable, who left the game after jamming his neck and experiencing muscle spasms.

The Phillies loaded the bases in the eighth, but Padres righthander Luke Gregerson ended the inning by getting pinch hitter Ross Gload on a liner to leftfield.