Zack Greinke pitched three scoreless innings and Travis Ishikawa homered for the visiting Brewers, who were playing a split-squad doubleheader against the Mariners and A's.
Saunders' second double was the key knock for Seattle, which broke a 2-2 tie in the game's final inning. The Mariners loaded the bases with no outs against Mark Rogers. Mike Wilson singled and moved to second on Justin Smoak's walk. Jesus Sucre laid down a sacrifice bunt, but all batters were safe.
Rogers rebounded to fan Carlos Peguero with the count full, but Alex Liddi followed with a single, scoring Wilson. Saunders followed with a two-run double off the wall in left. Luis Rodriguez's sac fly plated Liddi for the inning's fourth run. Dustin Ackley added his second RBI with a double that scored Saunders.
The Brewers answered with two runs in the bottom of the ninth, when George Kottaras homered, but Milwaukee couldn't manage any more scoring.
Greinke struck out five in three innings of work, leaving after walking the leadoff hitter in the top of the fourth. He scattered just one hit and the one walk on the afternoon. Greinke has allowed just one earned run in seven innings this spring.
"It felt like I was on a good page, working with [pitching coach Rick Kranitz and catcher Jonathan Lucroy]. It felt nice," Greinke said. "I haven't been trying to strike anyone out, really. ... It's just trying to make good pitches."
Mariners starter Hector Noesi cruised through the first five batters he faced before surrendering his first run of the spring on a solo home run to Ishikawa on a changeup that he left up in the zone.
Noesi, who came over from the Yankees in an offseason trade that also included Jesus Montero (0-for-3 with three strikeouts Tuesday) -- Michael Pineda was among the package headed to the Bronx -- surrendered three hits and just the one run in three innings.
"I was supposed to throw four innings, but I threw too many pitches in the second," Noesi said. But I felt good."
Seattle's Brandon League came in for relief and gave up a leadoff double to Milwaukee third baseman Aramis Ramirez in the fourth -- Ramirez's first hit of the spring after starting the year 0-for-12 -- but got out of the jam.
The Mariners plated a run in the sixth, when Saunders hit a leadoff double, moved to third on a sacrifice bunt and scored on a sac fly by Ackley.
The Brewers regained the lead in the bottom half of the inning, when Ramirez hit a one-out double and scored on Alex Gonzalez's single.
Seattle struck back in the seventh, when Smoak reached second base with one out. After a strikeout and a walk, Smoak scored on a single by Kyle Seager.
Up next for the Mariners: Veteran right-hander Kevin Millwood makes his second Cactus League start against the Royals at 7:05 p.m. PT in Peoria, Ariz., as the club looks to see where he might fit into the rotation. Millwood, 37, gave up one run on four hits in three innings against the Cubs on Thursday. It'll be the first televised game of the spring on ROOT Sports. Jason Vargas pitches in an intrasquad Minor League game earlier in the day.