"He throws a 97, 98 mph fastball," Suzuki said. "I cannot miss that pitch when it comes over the plate."
With Seattle trailing 3-1, Edgar Martinez drew a leadoff walk. Ben Davis' one-out single and Willie Bloomquist's two-out single loaded the bases. Pinch-hitter John Mabry's infield single off MacDougal's right leg made the score 3-2.
Suzuki then hit an 0-1 pitch over the wall in right-center for his first career slam and ninth homer of the season.
"When he connected, I knew it was gone. I tried to get it to the outside corner, but it just didn't get there," said MacDougal, who blew his sixth save in 30 chances.
Mike Cameron also homered for the Mariners, who scored five runs off MacDougal (3-4) with two outs in the ninth. The rookie had converted 10 opportunities in a row.
"I told (MacDougal) that he's human," Kansas City manager Tony Pena said. "Nobody's perfect. Tonight was not his night. He'll be ready tomorrow."
The Mariners extended their lead in the AL West to five games over the Oakland Athletics, who lost to Minnesota.
"That's a big win right there," Seattle manager Bob Melvin said. "We got some big hits in the last inning that we hadn't been getting. And then we got a bunch of them."
Affeldt, who has a history of blister problems on the middle finger of his pitching hand, departed after retiring Cameron leading off the sixth.
The Royals took the left-hander out as a precaution when they noted the early signs of a blister appearing underneath the nail. It is in a different spot from the previous blisters, and Affeldt is not expected to miss his next start.
"I first noticed a difference on the last out of the fifth," Pena said of Affeldt's blister. "It's not a big one, but we want to make sure it doesn't get bigger."
It was the second straight night a Royals starter left with one out in the sixth because of injury. Jose Lima came out with a strained groin Thursday night and is day-to-day.
Affeldt gave up one run on three hits, walking one and striking out two.
Mariners starter Ryan Franklin gave up three runs on seven hits in seven innings.
Kansas City took the lead in the first on a triple by Beltran. Carlos Febles rolled a one-out single between third and shortstop, then moved to second on a balk by Franklin. Beltran's line drive rolled to the wall in left-center.
Guiel hit his sixth homer of the season in the third inning -- his fourth in the past seven games.
Cameron homered in the fourth, but Berroa led off the fifth with his 11th home run of the year.
All-Star second baseman Bret Boone had a short night for Seattle. After striking out swinging to end the first, he threw his bat and helmet and was ejected by plate umpire Paul Emmel. Boone apparently was upset at a called strike earlier in the count.
It was Boone's first ejection of the season. He was replaced at second base by Mark McLemore.
The Royals went over 1 million fans in the 46th home date of the season. Last year the Royals went over the 1 million mark in their 56th home date. They are drawing an average of 22,875 fans per game after averaging 17,182 in 2002. ... The Royals' two home runs gave them 100 this season. ... Suzuki went 1-for-5, dropping his batting average to .352.