SAN DIEGO (AP) -- Taijuan Walker pitched one-hit ball for six innings to win his fifth straight start, Robinson Cano and Nelson Cruz homered and the Seattle Mariners beat the punchless San Diego Padres 7-0 on Wednesday.
Cano had four hits and drove in three runs. Cruz connected for his 20th homer on his 35th birthday.
Walker (7-6) struck out seven and walked none. The 22-year-old righty combined with four relievers on a three-hitter for Seattle's second straight shutout of San Diego.
Rookie Mike Montgomery threw a one-hitter against the Padres on Tuesday night. They have been blanked 13 times this year.
James Shields (7-3) failed for the fifth time to get his eighth victory. He's lost three straight starts.
Cano hit an opposite-field homer to left leading off the sixth. His fifth home run came after he'd been 0 for 10 with four strikeouts in his last three games.
Cano improved to 37 for 90 (.411) lifetime against Shields, with five homers and 16 RBIs. The 37 hits are the most by an active player against an active pitcher.
Shields was pulled after walking the bases loaded with two outs in the seventh and Cano greeted Frank Garces with an RBI single. Dustin Ackley, who had pinch-hit for Walker, was thrown out trying to score from second.
Cano hit an RBI double off Kevin Quackenbush with one out in the ninth. Cruz followed by greeting Marcus Mateo with a two-run shot to left.
Walker allowed Yonder Alonso's single with one out in the fourth and also hit Derek Norris with a pitch, but otherwise kept the Padres off the bases.
Walker's winning streak includes four road starts during which he's allowed just three runs in 26 innings.
San Diego's only other hits were Yangervis Solarte's double with two outs in the seventh off Mark Lowe and Jedd Gyorko's single leading off the eighth against Fernando Rodney.
Solarte doubled with one out in the seventh inning Tuesday night for San Diego's only hit against Montgomery.
Shields allowed two runs and four hits in 6 2-3 innings, struck out seven and walked four. The Padres have scored only three runs in his last four starts.
Mariners: Seattle continues its nine-game, three-city trip when it opens a four-game series at Oakland on Wednesday night, with LHP Roenis Elias (4-5, 4.25) scheduled to start against LHP Scott Kazmir (4-5, 2.79).