Royals starter Luke Hochevar was perfect through five innings. Masterson, the Indians' starter, had a very shaky first. But Hochevar broke down and Masterson held up and the Indians, who were 8-10 after 18 games last year, improved to 13-5.
"A game like today kind of shows you when things are going right," said Masterson (4-0). "The hitters sticking in with a guy who's throwing no-hit stuff. A pitcher struggling a little bit but really fighting and keeping us in the game. When you can win games like that, that's what good teams do. and we were able to win this game tonight."
Hochevar (2-2) retired the first 15 batters, allowing only three balls to be hit hard, and ran his string of retired batters over two starts to 31 straight. But he lost his no-hitter, his shutout, his composure and his lead in a messy sixth that included two balks and saw the Indians send nine men to the plate.
Hochevar was as confused as anyone by his sudden descent from perfect to putrid.
"I don't know if I really have an answer," he said. "I felt like I was throwing the ball well. The two balks was my fault. There's really no excuse for it. It all lies on me. I've got to make better pitches and get out of that."
Masterson, 6-13 a year ago, allowed six hits and five walks and struck out three in six innings.
"We definitely have the talent," said Masterson. "We're going to keep fighting. It's a long season but I think we've got a lot going for us."
Michael Brantley's leadoff single in the sixth broke up Hochevar's perfect game, then the pitcher balked him to second and surrendered an RBI double to Matt LaPorta. After LaPorta went to third on an infield out, Hochevar balked him home, tying it 2-all.
"What we were trying to do was get him [to pitch] from the stretch," said Cleveland manager Manny Acta. "Since he was pitching a no-hitter, he hadn't been in the stretch at all. That was the main thing. 'Hey, let's try to get him from the stretch.' Maybe for the first time, he was a little uncomfortable. Then when Brantley got on, things went from there."
Melky Cabrera's RBI double in the ninth off Tony Sipp ended a string of 9 1/3 scoreless innings for the Cleveland bullpen and Jeff Francoeur, on an 0-2 pitch with two out, followed with a two-run home run. Francoeur, running his hitting streak to 10 in a row, had three RBIs.
Chris Perez came in to get the last out and earn his sixth save in six opportunities.
With two out in the seventh, Collins walked Carlos Santana, loading the bases, but Hafner took a called third strike.
Hochevar wound up getting charged with six runs on five hits, with four strikeouts, three walks and two balks as the Indians widened their lead in the AL Central to two games over the Royals.
"Hochevar's stuff for the first five innings was as good as I've ever seen it," said Royals manager Ned Yost. "Brantley led off the sixth with a hit and he just unraveled. The two balks hurt him. He hung a breaking ball to LaPorta that hurt him. He just could never reel it back in."
Going back to his previous start when he held Seattle to one hit in seven innings, Hochevar had retired 31 in a row, two short of the team record Steve Busby set in 1974.
"It's frustrating, no doubt about it," said Hochevar. "You move on and get ready for your next start. It's not what you want to have happen or plan to have happened, but it happened. You flush it and move on."
The Royals took a 2-0 lead in the first on Francoeur's RBI single and an RBI triple by Alex Gordon, who stretched his hitting streak to 14 games, best in the American League.
Santana had an RBI single off Kanekoa Texeira in the ninth.
With Gordon having a 14-game hitting streak and Wilson Betemit hitting in 11 straight and Francoeur in 10, the Royals have three players with double-digit streaks for the first time since May 22, 2001. Mike Sweeney on that day had a 13-gamer and Joe Randa and Rey Sanchez had each hit in 10 straight. ... Masterson was only 0-2 with a 5.40 ERA in six spring starts after going 6-13 with a 4.70 the year before. ... The Cleveland bullpen started the night with the best ERA (2.47) in the AL.