Seattle won for the 11th time in 14 games since losing eight straight from April 15-22.
Iwakuma (2-0) was making his second start after beginning the season on the disabled list with a strained tendon on the middle finger of his pitching hand. The All-Star right-hander struck out seven and walked none.
Fernando Rodney worked around a pair of walks in the ninth to earn his 10th save in 11 chances. The Mariners have shut out the Royals for 27 straight innings dating to September 2013.
Danny Duffy (1-3) gave up one run and two hits in six-plus innings. He has allowed two hits and a run in each of his first two starts this season after pitching out of the bullpen to begin the year.
Iwakuma has thrown 48 2-3 consecutive scoreless innings against AL Central teams, the second-longest streak by any pitcher against one division dating to 1974. Orel Hershiser tossed 55 straight scoreless innings against NL West opponents in 1988.
The Mariners pushed across the lone run in the third. Mike Zunino led off with a double for Seattle's first hit and moved to third on a sacrifice bunt. After a strikeout, Duffy intentionally walked Robinson Cano. Hart followed with a single up the middle.
Seattle batters have driven in runs three out of the six times opposing teams have intentionally walked Cano this season.
Kansas City managed just four singles and advanced a runner to second base only once during the first eight innings. The Royals had their best opportunity to score in the ninth when Rodney walked a pair, but the closer struck out Billy Butler and induced a game-ending groundout.
NOTES: Seattle LHP James Paxton, on the disabled list with a strained left lat muscle, played catch and is scheduled to throw a bullpen Friday. ... Mariners RHP Taijuan Walker is scheduled to toss a bullpen Sunday after playing catch on Thursday. Walker is on the 15-day DL with right shoulder inflammation. ... Royals second baseman Omar Infante was not in the lineup for the second consecutive day due to back spasms. Manager Ned Yost said the team doesn't think Infante will have to go on the disabled list. Infante is day to day.