KANSAS CITY, Mo. -- Billy Butler's tiebreaking homer was just fair, and just in time, too.
Butler connected in the fifth inning, Joakim Soria worked the ninth for a record-breaking save and the Kansas City Royals beat the New York Yankees 4-3 on a rainy Friday night to snap a five-game losing streak.
Butler's drive on a 2-1 pitch from Dustin Moseley (2-2) hit the right-field pole and came moments before a 2 hour, 10 minute rain delay.
"Off the bat, well, I knew I hit it good," Butler said. "I thought it was a double off the wall. I thought it had a chance, but you never know at Kaufman Stadium. It was pretty high. I hit it good. It was slicing but I knew I didn't slice it much and I got a little help from the wind."
Said Moseley, "I thought it was going to go foul."
So did Royals manager Ned Yost.
"I didn't even get up because I thought it was going to go foul," Yost said.
Soria escaped a jam in the ninth to convert his 25th consecutive save opportunity, setting a franchise record. The Yankees put runners on first and third but Robinson Cano bounced out to second to end the game.
"It wasn't easy, but we got a win," Yost said. "There hasn't been much that's been easy for us. Soria always finds a way to get the job done."
Kansas City scored three times in the second to take a 3-0 lead. Yuniesky Betancourt hit a two-run double and Jason Kendall added a sacrifice fly.
The Yankees responded with three in the third. Alex Rodriguez and Cano had run-scoring singles and Lance Berkman hit a tying RBI double with two down.
Kyle Davies (6-7) pitched five innings for the Royals, allowing seven hits. The right-hander improved to 3-0 in four career starts against the Yankees, albeit with a 5.85 ERA.
"In the first two innings, my command was bad and in the third inning, everything was up but in the strike zone," Davies said. "After the first rain delay, I made a bit of an adjustment. It was really good after that. I would have liked to have seen what may have happened if we hadn't had the second rain delay. But the bullpen came on and did a great job."
Jesse Chavez followed Davies with two innings of one-hit ball and Blake Woods pitched the eighth before Soria earned his 32nd save in 34 opportunities this season. Jeff Montgomery set the club record of 24 straight saves in 1993.
Moseley gave up four runs and eight hits in 4 1/3 innings for New York. He walked three and struck out one.
Chad Gaudin, Kerry Wood, Boone Logan and Joba Chamberlain limited the Royals to one walk the rest of the way.
Betancourt, Butler and Gregor Blanco each had two hits for Kansas City, which improved to 2-4 against the Yankees this season.
AL East-leading New York stayed two games in front of Tampa Bay, which lost 5-0 to Baltimore. The Red Sox also lost and remained six games back of the Yankees.
Derek Jeter and Rodriguez each had two hits for New York, which finished with 10 overall.
"Our bats weren't bad," manager Joe Girardi said. "We just didn't get the hit when we needed it. We came back and tied the score and you lose on a home run that hits the foul pole. That's baseball."
Davies has just two wins in his last 13 starts, both against the Yankees. He pitched 5 1/3 innings in Kansas City's 7-4 win at Yankee Stadium on July 24.
The Yankees and Royals have played six times this year and three have had rain delays, totaling 6 hours, 38 minutes. There also was a 31-minute rain delay in the third inning Friday night.