Franklin Gutierrez and Kendrys Morales highlighted Seattle's offense and James Paxton silenced the Cardinals over six scoreless innings as the Mariners downed St. Louis, 4-1, in the middle test of a three-game series.
Paxton (2-0) won his MLB debut last week against the Tampa Bay Rays and held another playoff contender in check Saturday as the 24-year-old lefty limited the Cardinals to just two singles and two walks while striking out five.
"It's nice to see him step up like that," Mariners manager Eric Wedge said of his young starter.
Gutierrez recorded a two-run double and Morales added a solo homer as Seattle snapped a five-game skid and handed Michael Wacha (3-1) his first loss. Wacha, making his seventh career start, struck out seven over five innings but gave up two runs on four hits and four walks in the setback.
St. Louis fell to 6-2 on its homestand and dropped back into a tie with the Pirates atop the NL Central after Pittsburgh held off the Cubs on Saturday.
Paxton and Wacha matched zeroes through the first four innings, but the Cardinals starter gave up a leadoff single to Dustin Ackley in the fifth, then walked his counterpart on four straight pitches.
After a sacrifice bunt, Gutierrez doubled down the left-field line to bring in both runners, and Morales took Tyler Lyons deep in the eighth for a 3-0 Mariners lead.
The Cardinals, who came in having scored 56 more runs than any other NL team, finally got on the board in their half of the eighth when Matt Carpenter doubled, moved up on a groundout and scored on Charlie Furbush's wild pitch.
"We need to get some offense going," Cardinals manager Mike Matheny said.
Seattle got the run back on Carlos Triunfel's sacrifice fly, and Danny Farquhar retired the side in order in the home ninth to lock up his 14th save.
Morales has five homers in his last 10 games and has 22 on the year, the most in a season by a Mariners switch-hitter ... Carpenter's double was St. Louis' only extra-base hit ... Ackley singled, walked twice and scored a pair of runs.