BOSTON -- Brian Bannister did everything he could to stop Boston's winning streak.
Boston's five-game winning streak came to an end against one of baseball's worst teams a day after the Red Sox finished a three-game sweep at Tampa Bay, which has the best record in the big leagues at 33-15.
Matsuzaka (3-2) walked a season-high eight while allowing three runs over 4 2/3 innings, in his first start since a no-hit bid against the Phillies was broken up with two outs in the eighth.
"He's the most relaxed one out there and we are all on the edge of our seats," Red Sox manager Terry Francona said. "Obviously eight walks, a hit batter and a wild pitch ... it is a hard way to be successful."
Bannister (4-3) gave up three runs on nine hits and struck out four while winning his third straight. He won for the first time in five decisions against the Red Sox.
"I haven't won here so it is good to get over that hump," Bannister said. "This is how it is supposed to look ... the 'pen did their job, we fielded well and we hit well."
Joakim Soria pitched a perfect ninth for his 12th save.
After working his way out of a bases-loaded jam with no outs in the fourth inning without allowing a run, Matsuzaka completely fell apart in the fifth.
He walked five batters -- a career high -- in the inning, sandwiched around an RBI single by DeJesus.
"We had the bases loaded and Matsuzaka made some good pitches, but I told them to come back in next inning and load them up again and they did," Royals manager Ned Yost said. "We knew the Red Sox had been hot, but we feel pretty good about ourselves and it showed."
The Royals added two more runs in the inning. Billy Butler scored on a wild pitch and an RBI walk by Jose Guillen. Joe Nelson relieved Matsuzaka and retired Jason Kendall.
"I don't know what the answer is, but we will continue to try and figure it out," Red Sox catcher Jason Varitek said. "He was obviously struggling with his command."
Boston went ahead 1-0 in the fourth inning on an RBI single by Adrian Beltre that was set up when J.D. Drew's double-play grounder bounced up and hit second-base umpire Paul Schrieber on the chest.
Bill Hall led off the fifth inning with his fourth home run of the season to cut the Royals' lead to 3-2, but DeJesus increased the lead for K.C. to 4-2 when he doubled off the left field wall to drive home Mike Aviles in the sixth.
Varitek added an RBI double in the bottom half of the sixth.
Joe West was the home plate umpire. It was his first game at Fenway Park since complaining about the length of games between the Red Sox and Yankees. Time of game was 3 hours, 3 minutes. ... Youkilis has now reached base in 26 consecutive games.