The Padres had totaled just three runs in losing four straight games. Upton hit a slam in the first inning before Carlos Frias recorded an out and Will Middlebrooks later homered to help stake Shields (6-0) to a 9-0 lead through three.
The All-Star right-hander became the first Padres starter to win his first six decisions since 1985, when Andy Hawkins began 11-0.
New to the Padres this year, Shields allowed three runs in seven innings and struck out seven. He started a four-run burst in the second inning with a leadoff single.
Shields also went 6-0 over his first 13 starts in 2007 season with Tampa Bay.
Frias (3-2) was tagged for 10 runs and 12 hits in four-plus innings.