Greinke (13-8) retired the final 22 batters after Johjima's two-out, soft single to center field.
The right-hander leads the majors with three shutouts and six complete games, and his 2.32 ERA is best in the AL, all substantial arguments for the Cy Young Award.
It was the best low-hit game of his career -- he pitched a three-hitter on April 24 against Detroit.
"He's just a full-dimensional guy," Royals manager Trey Hillman said. "He's overpowering, he misses bats, he knows how to use his defense and that's what he did today. He was just in total command the whole day. Very impressive."
Last Tuesday, Greinke struck out team-record 15 against Cleveland. He didn't fan any Mariners until the sixth inning and finished with five overall.
A few days ago, Greinke talked about how Toronto's Roy Halladay and Seattle's Felix Hernandez were economical with their pitches and got more grounders than strikeouts. Greinke talked about saving himself some pitches, and also said the Mariners' hitters made more contact than the Indians' big hitters.
Greinke has 202 strikeouts this season, making him the first Royals pitcher to reach 200 since Kevin Appier in 1996.
"This one's a lot of luck, a complete-team effort," Greinke said. "That other one [Cleveland] was as good as I could pitch, as nasty as I could be. Today, everyone just played well behind me."
Seattle's lone threat was in the second. Bill Hall drew Greinke's only walk with one out and took second on Johjima's single.
"Had I taken another step and dove, there's a chance I could have come up with it," Maier said. "But that's something they teach all the time, if you're diving and you don't have someone backing you up, you better make sure you're going to catch it. If I miss that and it bounces over my head, a run scores and the guy gets at least a double, maybe a triple."
Greinke said that if he tried to catch it, "more likely than him catching it, it gets by him and they score a run and the ballgame is a different story. He's smart. He knows what he's doing out there."
Seattle was held to one hit for the 16th time in franchise history, the first since April 8, 2006 by Oakland. It was the 10th individual one-hitter, the last one coming by the Yankees' Ted Lilly on April 27, 2002.
"That's one of the better pitched games I've seen in a long, long time," Mariners manager Don Wakamatsu said. "Just a clinic today. The guy was almost unhittable. I think you go into a ballgame like this offensively with a guy that struck out 15 in his last appearance, and really the only way you beat a guy like that is try to get his pitch count up.
"You look up on the board in the last inning, on his 113th pitch it's 96 miles per hour, and with that he complements it with a 65-66 mph curveball with command," he said.
Ryan Rowland-Smith (2-2) went a career-high eight innings for the Mariners, allowing five hits and three runs. He walked one and struck out a career-high seven.
Rowland-Smith matched Greinke for much of the afternoon except for one bad inning -- the Royals' three-run fifth.
Maier walked with one out, David DeJesus singled home a run and another scored on a wild pitch.
Greinke fanned Josh Wilson to end the sixth for his first strikeout of the game. That began a string in which Greinke struck out three of four hitters. Hall was his 200th strikeout.
"It feels good," Greinke said. "It's really, really hard to do. But people do it."
- Greinke is 3-0 with a 2.14 ERA in six career starts against Seattle.
- There is some concern that Mariners 1B Russell Branyan, placed on the disabled list Saturday with a herniated disk, may not play again this season. This is the third time this season he has been sidelined with back issues.
- Mariners RF Ichiro Suzuki, 16 hits short of a record 200-hit season, missed his seventh straight game (strained left calf) but he is expected to return Monday.
- Seattle RHP Ian Snell, hit on the right wrist by a line drive Saturday, will make his next scheduled start. X-rays were negative.