Morton (1-1) allowed three hits, walked four and struck out seven in 6 2/3 innings for his first win with the Phillies.
Padres left-hander Robbie Erlin (1-1) retired the first 10 batters and didn't allow a hit until Freddy Galvis got a hard single to center with two outs in the fifth. He allowed one run, three hits and fanned seven in six innings.
Morton exited after issuing consecutive walks with two outs in the seventh. Hector Neris entered and struck out pinch-hitter Wil Myers on a splitter to end the inning.
Tyler Goeddel led off the bottom of the sixth with a single just out of shortstop Alexei Ramirez's reach for his first career hit. Two outs later, Goeddel scored from second when Herrera lined a triple to right.
The Phillies added two runs in the eighth when second baseman Cory Spangenberg made a throwing error on what should've been an inning-ending double-play grounder hit by Maikel Franco with the bases loaded. The Padres challenged the call at second, but a video review confirmed Herrera's slide was legal. Herrera didn't make contact with Spangenberg, but never touched the base.
The Padres were shut out for the fourth time in eight games. They began the season with 30 scoreless innings, including three shutout losses to the Dodgers.
Padres: After winning three of four, they fell to 3-5.
Phillies: They improved to 3-5 with their third win in four games after losing four straight to start the season.
Franco made one of the best 5-3 plays on the second-base side of the field. Playing an overshift, Franco ranged far to his right and made a backhanded grab to rob Brett Wallace on a ball hit up the middle.
Padres: 3B Yangervis Solarte (right hamstring strain) and RHPs Tyson Ross (right shoulder inflammation), Brandon Morrow (shoulder surgery) and Jon Edwards (flexor strain) could all return within a few weeks.
Phillies: 1B Darin Ruf wasn't in the starting lineup against a lefty because he injured his left shoulder diving for a ball Monday. ... OF/3B Cody Asche is expected to resume baseball activities soon. He's been sidelined since early spring because of a strained oblique.
Padres RHP Colin Rea (0-0, 12.46) opposes Phillies RHP Jerad Eickhoff (0-1, 3.60) on Wednesday night. Rea gave up five runs in 3 1/3 innings in a win at Colorado last week. Eickhoff gave up two earned runs in five innings in a loss at the Mets last Friday.