As good as Wily Peralta was, Felix Hernandez was even better.
"I think he's probably the best pitcher in baseball," Milwaukee catcher Martin Maldonado said. "We tried to get something going early but it didn't happen. He pitched a great game."
Hernandez pitched four-hit ball for eight innings, leading the Seattle Mariners over the Brewers 2-0 Sunday.
Peralta (8-12) also went eight innings and allowed four hits. He struck out four and walked none. It was his second career complete game, both this season. Those are the only two complete games for the Brewers.
"He had pretty good stuff today. Hard fastball, good slider, good changeup," said Justin Smoak, who hit his 13th home run off Peralta in the fifth. "He was tough. We were fortunate to get a couple runs off him."
Hernandez (12-5) struck out nine and walked one in his first career appearance against Milwaukee. The 2010 AL Cy Young winner leads the league with a 2.28 ERA and is second with 178 strikeouts.
This was the eighth time this year that he pitched at least eight innings. He was on track for his possible 10th career shutout, but a 20-pitch eighth inning pushed his pitch count to 108.
Acting Mariners manager Robby Thompson visited with Hernandez between innings and determined "he was at the end of his rope."
Said Hernandez: "I'm just being honest. I don't want to go out there, tired and lose the game."
Hernandez improved to 16-7 with a 2.63 in 30 career interleague starts, including 3-0 with a 1.16 ERA in four starts this season.
"When you got a guy like that and your guys are swinging early, it's tough because you don't get any pitches to drive," Brewers designated hitter Jonathan Lucroy said. "He made few mistakes today. He made one mistake in three at-bats to me and I didn't swing. He is very good."
Danny Farquhar worked the ninth for his fourth save.
Smoak hit a solo home run in the fifth, his 13th.
Hernandez allowed just one hit over his first five innings, a second-inning double by Juan Francisco. He was left stranded at third.
The Brewers had two hits in the sixth but still sent only three batters to the plate.
Maldonado opened with a bunt single but was eliminated on a double play. Jean Segura then singled to deep short, but 41-year-old catcher Henry Blanco threw him out at second on steal attempt.
"He still throws them out," Hernandez said. "Unbelievable."
The Mariners, who lost the first two games in the series, ended a 12-inning scoreless streak with a gift run in the third.
Dustin Ackley opened with a double to left and moved to third on Brendan Ryan's right-side groundout.
On a 1-0 pitch to Blanco, Peralta bounced a fastball in front of the plate. The wild pitch caromed off catcher Martin Maldonado's shoulder and rolled several feet away. Ackley sprinted home for a 1-0 score.
Brewers manager Ron Roenicke added that Hernandez "is one of the best pitchers in the game for the few years now."
"Wily was really good. Really should have given up one run," he said.
NOTES: Mariners manager Eric Wedge, who has missed 18 games recovering from his July 22 mild stroke, visited the team before the game. He said he hopes to manage again when the team returns for its next homestand Aug. 23. ... Acting manager Robby Thompson said Mariners pitcher Hisashi Iwakuma "jammed" his back Saturday against the Brewers. "I talked to him a little bit. He said he was fine. He should be good to go," Thompson said. ... The Brewers this weekend became the final Major League Baseball team to play a regular-season game at Safeco Field. Before Friday, the last time Milwaukee played a regular-season game in Seattle was Aug. 12, 1997, at the Kingdome. ... The Brewers' franchise actually began in Seattle. After one season as the expansion Seattle Pilots, the club moved to Milwaukee to play as the Brewers in 1970.