In 75 pitches, Smoltz (1-0) did not walk a batter and fanned nine in his first start for the Cardinals since he signed last week after being released by the Boston Red Sox.
Brendan Ryan had two hits and one RBI, while Skip Schumaker had two hits for the Cardinals, who have won nine of 11.
San Diego scored on Nick Hundley's solo homer and a sixth-inning single by Adrian Gonzalez. Will Venable and Everth Cabrera had two hits each for the Padres, who have lost three of four.
The losing pitcher was starter Cesar Carrillo (1-2), who lasted just two innings, giving up four runs on five hits with six walks and one strikeout.