SEATTLE -- Sonny Gray found a way to extend his run of solid starts into the All-Star break, and he also provided the Oakland A's with a much-needed jolt of momentum Sunday.
The right-hander helped end Oakland's two-game losing streak with another impressive pitching performance, allowing just one unearned run over 7 2/3 innings in a 4-1 win over the Seattle Mariners.
Heading into the break, Gray (10-3) won each of his past three starts without giving up more than one earned run in any of them. He is 3-0 with a 0.83 ERA in July. On Sunday Gray allowed six hits and two walks while striking out five.
The A's (59-36) avoided the sweep while maintaining a 1 1/2-game lead over the Los Angeles Angels atop the American League West standings.
Oakland right fielder Brandon Moss hit his second home run in as many nights, a solo shot in the sixth inning that gave the A's a 3-1 lead. Oakland second baseman Nick Punto added a solo home run in the ninth for a 4-1 advantage.
Gray stayed out of trouble for most of the afternoon but handed the ball over to closer Sean Doolittle with two runners on base, two outs and a two-run lead in the eighth. Gray had allowed a one-out single to Seattle right fielder Endy Chavez, who then moved to second on a groundout. With two outs and first base open, Gray intentionally walked Mariners second baseman Robinson Cano to get to third baseman Kyle Seager.
Doolittle came out of the bullpen to face Seager and got him to pop out on the second pitch.
After Punto's home run off Seattle reliever Joe Beimel put the A's ahead by three in the top of the ninth, Doolittle came back out and struck out two of the three batters he faced to earn his 14th save of the season.
Oakland first baseman Stephen Vogt went 0-for-4, snapping his 12-game hitting streak.
Seattle starter Chris Young (8-6) allowed three runs on five hits in six innings. It marked the sixth consecutive quality start for Young, who hadn't allowed more than two runs in a game since June 11.
The Mariners scratched out a run in the first inning, aided by a Gray throwing error. After Seattle center fielder James Jones hit a one-out single, the Oakland pitcher threw the ball away attempting to pick him off at first base. Jones moved all the way to third base, then scored on a Cano groundout for a 1-0 Seattle lead.
The A's took the lead in the fifth on back-to-back, two-out RBI singles by center fielder Craig Gentry and catcher John Jaso.
Seattle (51-44) finished with six hits while being held to three runs or fewer for the ninth time in 10 games.
NOTES: Oakland CF Coco Crisp was sidelined by a sore neck for the fourth consecutive game. ... A's LF Yoenis Cespedes was at designated hitter Sunday, one day after aggravating his hamstring injury. UT Andy Parrino, called up from Triple-A on Friday, got the start in left field and went 2-for-3. .. Oakland activated LHP Drew Pomeranz from the disabled list and optioned him to Triple-A Sacramento, where he was already doing a rehab stint. ... With 51 wins, the Mariners have their highest total before the All-Star break since the 2003 team won 58 by this stage. ... Oakland manager Bob Melvin said he would come out of the All-Star break with his two new starters leading the rotation. RHP Jeff Samardzija is the probable starter for Friday's game against the Baltimore Orioles, with RHP Jason Hammel scheduled to go Saturday. ... Seattle plans to start RHP Hisashi Iwakuma on Friday and RHP Felix Hernandez on Saturday against the Los Angeles Angels.