NEW YORK -- Eric Hosmer's family rose from their seats at Yankee Stadium, watching his first career home run go soaring into the second deck in right field.

They were probably more excited about his sacrifice fly about three hours later.

Hosmer drove in Chris Getz with a shallow flyball in the 11th inning, capping a late comeback and lifting the Royals to a 4-3 win over the New York Yankees.

"They're both big, but winning the game is what we come here for," Hosmer said of his two highlight hits. "I fell down 0-2 to a tough pitcher out of the bullpen, knowing Getz is on third and can run, and just tried to get it out in play and get him home."

Wilson Betemit had a tying RBI single in the eighth inning for the Royals, and Jeff Francoeur drove in a run during the 10th inning. Joakim Soria (3-0) allowed Curtis Granderson's matching RBI single in the bottom half of the 10th, but still managed to pick up the win after blowing his second save in eight tries this season.

Louis Coleman pitched the 11th for his first career save, helping the Royals end a seven-game road skid and win for the sixth time when trailing in the eighth inning or later.

Buddy Carlyle (0-1) walked Getz to lead off the 11th inning, and Luis Ayala came into the game to face Alcides Escobar, who laid down a sacrifice bunt. Jarrod Dyson followed with an infield single and Cabrera was walked before Hosmer's go-ahead fly to center field.

Granderson also hit a solo homer for the Yankees, and Jorge Posada had a pair of hits and drove in a run. But Derek Jeter was 0 for 6 and New York left 15 runners on base.

The Yankees led 2-0 when Hosmer connected off A.J. Burnett in the fourth inning. The fan who grabbed the ball in right field tossed it back onto the field, and it made its way back to the Royals dugout by the time Hosmer had finished rounding the bases.

"My reaction was elation -- and just a giant deflating of a balloon, a sense of relief," said Hosmer's father, Mike. "I can breathe easy again. I can just sit back and enjoy and watch the game now. Whatever happens from here on out is gravy."

The Yankees clinged to their 2-1 lead into the eighth, when reliever David Robertson walked Cabrera and Billy Butler. Betemit followed moments later with his tying two-out single.

Mariano Rivera pitched a scoreless ninth for the Yankees, who put two aboard in the bottom half of the inning, only to see Posada strike out on a full-count pitch.

The Royals pulled ahead in the 10th when Cabrera walked against his former team and Hosmer grounded into a fielder's choice. He advanced to second on a wild pitch before Francoeur lined the seventh pitch he saw from Carlyle into the gap in right-center.

All of that, of course, came long after the starters were gone.

Burnett allowed only one hit -- Hosmer's homer -- over seven erratic innings. He walked five and hit a batter, though none of those baserunners scored.

"The bottom line is you don't want to walk guys and put guys on, but you have to make the pitches," Burnett said. "I just kept running positive thoughts through my mind."

Vin Mazzaro started for Kansas City in place of Bruce Chen, who went on the disabled list with a strained muscle in his side. The former Oakland A's starter was just as erratic as Burnett, giving up two runs on six hits and four walks in just four innings.

Oddly, none of the batters he walked came around to score, either.

Royals reliever Nathan Adcock also hit a batter, beaning Robinson Cano above the bill of his helmet with two outs and nobody on base in the fifth inning.

Cano immediately went down in the batter's box as the ball ricocheted toward the Royals dugout, then sat up as manager Joe Girardi and trainer Steve Donohue came out to check on him. Cano started walking toward first before the Yankees decided to bring in Eduardo Nunez as a pinch runner. He remained in the game to play second base.

Cano underwent a CAT scan and the results came back negative. He is day to day.

"That was an absolute accident," Royals manager Ned Yost said.

Things got a bit testy in the sixth, when Burnett plunked Francoeur in the shoulder with a runner already on base. Although it didn't appear to be retaliation for hitting Cano, plate umpire Ed Rapuano nonetheless warned both dugouts.

"It's pretty frustrating, considering the way A.J. pitched," the Yankees' Brett Gardner said. "It's probably the longest game we've played all year and we came up on the short end."

Game notes

Yankees RHP Rafael Soriano had an MRI on his ailing right elbow, which revealed minor inflammation. Girardi called him day to day. ... The Yankees activated Ayala from the disabled list and optioned RHP Lance Pendleton to Triple-A. ... Royals OF Alex Gordon got the day off from the starting lineup.

Information from ESPNNewYork.com's Andrew Marchand and The Associated Press contributed to this report.