PHILADELPHIA (AP) -- James Shields ended his road skid, and the Padres finally beat the Phillies.

Shields pitched seven strong innings for his first road win since May, and San Diego hit three homers in a 9-4 victory over the Philadelphia Phillies on Sunday.

"He really picked us up today and we needed it," San Diego interim manager Pat Murphy said. "He had a real good fastball and he competed well. That was huge."

More from FoxSports

Shields (10-6) allowed one run and six hits with eight strikeouts and one walk. The right-hander was 0-4 with a 5.63 ERA in his previous eight road starts since his last win away from Petco Park on May 24.

"I felt like I was locating pretty well with my fastball today," Shields said. "I was being more aggressive with it."

Matt Kemp, Justin Upton and Yangervis Solarte went deep for San Diego, which avoided losing all six games versus the Phillies this season.

"As a group the offense has to feel good about today," Murphy said. "Our big guys came up big."

Cameron Rupp homered and Odubel Herrera had four singles for Philadelphia.

Alec Asher (0-1) allowed four runs and eight hits in 5 2-3 innings in his major league debut. A 2012 fourth-round pick of Texas, Asher was acquired in the July 30 trade that sent ace left-hander Cole Hamels to the Rangers.

Asher needed 27 pitches to get out of a shaky first inning. The Padres scored two runs on Kemp's drive to left for his 16th homer, extending his on-base streak to 19 straight games. But Asher settled down from that point.

"You gotta love that kind of grit," Phillies interim manager Pete Mackanin said. "I liked his stuff, liked his approach. You don't expect a guy making his major-league debut to have that poise and mound presence. He battled through and got us to the sixth inning."

Asher set a franchise record by becoming the fifth starter this season to make his major league debut.

Rupp's opposite-field shot in the second got Philadelphia within 2-1 and made it seven homers in 16 games for the catcher.

Upton cleared the wall in left-center in the third for his 24th homer, and Shields put the Padres up 5-1 with his first RBI of the season and fifth of his career on a sixth-inning single.

"I'm not really worried about RBIs," Shields said. "I'm more worried about scoring more runs while I'm pitching. I was glad I was able to help myself out today."

The Padres padded their lead with three runs in the eighth. Derek Norris and pinch-hitters Clint Barmes and Brett Wallace each drove in a run.

Phillies reliever Adam Loewen started the inning but left without recording an out after giving up four singles and a walk.

DAD WITH CALL

Asher's father, Bob, introduced his son prior to his third-inning at-bat. Bob Asher is the public address announcer at Joker Marchant Stadium, which is the Florida spring training home of the Detroit Tigers.

Alec Asher was focused on his at-bat and didn't hear his father make the call.

"I didn't realize it until after it happened when I saw his face on the big screen," he said.

GOOD TRIP

Yonder Alonso had three hits for the Padres, finishing their road trip 8 for 19.

SLUMP BUSTER

Cesar Hernandez had two hits with a triple and an RBI after entering the game in a 2-for-21 slump. Mackanin thought about resting Hernandez, but decided to let him battle out of the slump.

"That's what we need to see if he's going to be the everyday second baseman," Mackanin said.

Hernandez said it's a matter of being more selective at the plate.

"If you swing at bad pitches, they're going to throw it every time," he said.

UP NEXT

Padres: San Diego starts an 11-game homestand on Monday night when RHP Tyson Ross (9-9, 3.42 ERA) faces Texas RHP Colby Lewis (14-6, 4.38 ERA).

Phillies: Philadelphia heads to New York for a three-game series against the Mets beginning on Monday night when rookie RHP Jerad Eickhoff (1-1, 2.25 ERA) opposes Mets RHP Bartolo Colon (11-11, 4.68 ERA). The Mets swept the Phillies, outscoring them 40-21, at Citizens Bank Park last week.