ARLINGTON - It's safe to say that Zack Greinke is zeroed in. On opposing hitters. On the stat sheet, where he has a 0.00 ERA. On Saturday night, when he hung up nine zeros for the first time in his Major League career.

In fact, the only thing that has slipped by him this year is his scoreless innings streak, which reached 34 after his 2-0 gem over the Rangers at Rangers Ballpark in Arlington.

"That kind of blew me away," Greinke said when someone told him about Orel Hershiser's record 59-inning scoreless streak after the game. "It's just about impossible to get to 34 nowadays. Fifty-nine, that's impossible. I would have been happy with 20."

The 25-year-old rising star is pitching beautifully in 2009, opening the season with 20 scoreless innings. And he had to be at his best, with the Rangers' Kevin Millwood also throwing a complete game in a battle of aces with the top two ERAs in the American League.

Greinke was sharp, pitching out of trouble in the early innings. He allowed seven hits and didn't issue a walk while striking out 10. Greinke threw 111 pitches after using 104 to get through five innings in his last start against Cleveland.

He was at his best in the second and third innings. Greinke gave up a leadoff triple to Hank Blalock in the second, but came back by getting Marlon Byrd to ground out and then striking out Nelson Cruz and Chris Davis.

The Rangers played for an early run in the third as Jarrod Saltalamacchia led off with a double and was sacrificed to third by Elvis Andrus. It didn't faze Greinke, who struck out Ian Kinsler and induced Michael Young to ground out to second.

"Greinke has great stuff, but the biggest difference I've seen the last couple of times we've faced him is he's had great command," Young said. "That's a big key for a pitcher."

Greinke credited catcher Miguel Olivo, who has caught him in all three starts this season. Royals manager Trey Hillman said before the game that it's becoming a certainty that Olivo will catch Greinke.

Greinke said that Olivo is forcing him to throw inside more than he likes to. It makes sense with a 94-95 mph fastball. And it sets up his slider, curveball and changeup.

"If he shows the inside, then the hitter has to start looking inside," Olivo said.

Greinke said Saturday was the first time that he has shaken off Olivo this season and the catcher said no.

"He's been right with me," Greinke said. "He's calling his game and it's working. I'm adjusting to his style. He calls the inside pitch more than I'm used to."

The Royals' No. 1 battery worked perfectly together in the ninth. After getting the first two outs, Greinke gave up a single, bringing up the possible tying run. Hillman had planned on taking his young starter out for standout closer Joakim Soria, but Greinke convinced his manager otherwise when he visited the mound after Cruz's hit.

"I told him I was fine," Greinke said. "I needed to stop hanging my put-away pitch."

Greinke got ahead of Davis and then bounced a slow curve for a 2-2 count. Having gone inside early in the count, Greinke threw a fastball to the outside corner, and the game ended as Davis took strike three.

Greinke threw the first complete game in the AL this season, and set the franchise's record for the most consecutive scoreless innings, passing one of the Royals' all-time best, Kevin Appier (1993).

"Zack is going to be one of the premier pitchers in the American League for a long time," Hillman said. "It's good for us, and it's good for Zack Greinke."

The Royals scored their first run in the sixth, taking advantage of a leadoff walk by Coco Crisp. Crisp advanced to third on two groundouts, then scored on Billy Butler's ground-ball double down the left-field line.

Kansas City got an insurance run when Olivo delivered a two-out solo shot in the seventh. The ball just cleared the left-field fence for Olivo's first homer of the season.

"That was good to get," Olivo said.