"He did a really good job of buckling down all night," Seattle's Brad Miller said. "When we got guys on, he halted the rally by making some really good pitches."
Shields became the first San Diego pitcher since 2007 to start the season 5-0, Will Middlebrooks homered for the first time in nearly a month, and the Padres ended the Seattle Mariners four-game win streak, 4-2 on Wednesday night.
Miller provided all of Seattle's offense with a solo homer in the fifth and an RBI double in the ninth — the Mariners' only hit with a runner in scoring position.
Every rally Seattle tried to piece together was quickly scuttled, whether it was a strikeout or a key groundball that got Shields and the rest of the Padres' pitchers out of trouble.
In seven of nine innings Seattle had a runner in scoring position but didn't get a hit until Miller in the ninth. The Mariners finished 1 for 12 with runners in scoring position and were 0 for 10 against Shields. The Padres' ace allowed six hits and struck out nine, throwing a season-high 115 pitches.
"The positive is we got them on out there. The negative is we couldn't get them in. That guy on the mound had a lot to do with it too," Seattle manager Lloyd McClendon said. "I thought we had good at-bats, really grind it out, got his pitch count up, had him on the brink a few times and just couldn't get the big hit."
Seattle's best chance at rallying came in the sixth when Shields walked Kyle Seager and Logan Morrison to start the inning. After a brief meeting at the mound, Shields struck out Mike Zunino after he was unable to get a sacrifice bunt down and got slumping Dustin Ackley to ground into a double play.
"We're new to each other, we're developing a relationship about how he's feeling, him being honest, trust all that, that pitchers and managers have to have," San Diego manager Bud Black said. "In my mind I was going to leave him in because he was still throwing the ball well."
Shields (5-0) struggled to get through six innings, but became just the sixth pitcher in Padres' history to win his first five decisions and first since Justin Germano in 2007.
Seattle starter Taijuan Walker (1-4) pitched six innings, his second longest start of the season, and only ran into trouble in the third when Middlebrooks went deep. Alexi Amarista followed with a double and scored on Spangenberg's sacrifice fly.
Walker retired the Padres in order three times and pitched out of a jam in the sixth after one-out singles by Spangenberg and Matt Kemp. Walker struck out six and allowed four hits and pitched into the sixth for the third time in seven starts.
"That's been my goal the last couple of starts to go tight with the fastball and work ahead. It was working. I feel like they weren't really putting good swings on it so we stuck with it.
Padres: Wil Myers returned to San Diego to have his sore left wrist examined by team doctors a day after being a late scratch from the lineup. Manager Bud Black said they hoped to know more on Thursday about Myers' status.
Mariners: CF Austin Jackson was "so-so" in his first day of running after spraining his ankle last week, manager Lloyd McClendon said. Seattle hopes Jackson may be far enough along to go out on a rehab assignment this weekend.
Padres: RHP Tyson Ross (1-3) has last three decisions, tied for the longest streak of his career. He'll get a chance to stop the skid at home against Washington on Thursday.
Mariners: LHP Roenis Elias (0-1) will start the series opener against Boston on Thursday. Seattle juggled its rotation to have Elias throw against the Red Sox and has three lefties set to face Boston.