CHICAGO -- Zack Greinke wouldn't give in. He kept going for the corners instead of going after the hitters, and by his own admission, was "too fine."
Or was he perfectly fine?
Greinke (1-0) struck out seven and walked three, winning for the first time in seven career decisions at U.S. Cellular Field.
"I treated every batter like I didn't want him to get a hit on me, maybe was a little too fine," Greinke said. "I didn't give in one pitch the whole game. If I threw a fastball, I wanted it to be right on the corner, knee high -- or inside corner, waist to stomach high. I was trying to make the perfect pitch too much."
Relievers Juan Cruz and Joakim Soria retired all nine batters to preserve the Royals' first victory of the season. In the opener Tuesday, Chicago rallied to win when Jim Thome hit a three-run homer in the eighth inning off reliever Kyle Farnsworth.
Mike Aviles doubled and scored in the third inning, then singled and scored in the fifth for the Royals. That was enough for Greinke, who simply outpitched Gavin Floyd (0-1).
A 13-game winner last season, Greinke left after Jermaine Dye led off the seventh with a single. Cruz set down Paul Konerko, A.J. Pierzynski and Alexei Ramirez before retiring the side in the eighth.
Soria pitched the ninth for his first save after converting 42 of 45 opportunities last year, and the Royals got what second baseman Mark Teahen hopes is "a shot of our maturity as a team."
"We can take a loss like yesterday and come back today and play good quality baseball and win the ballgame," he said.
The White Sox wasted a solid performance by Floyd, who allowed six hits and struck out nine in seven innings. The team leader with 17 wins last season, he retired the first eight batters before Aviles doubled off the center-field wall and Coco Crisp drove a ground-rule double to the warning track in center.
It became 2-0 when Aviles led off the fifth with a single and scored from third on Mark Teahen's single.
"It's not like they're a powerhouse by any means, but it seems like they know how to play baseball pretty well," Floyd said.
Manager Ozzie Guillen added: "They're going to give a lot of people headaches."
The 25-year-old Greinke eased any concerns after allowing 29 earned runs in 28 1/3 innings during spring training.
The only hits he allowed were two singles by Dye and one by Pierzynski. Not bad, considering Greinke was 0-6 with a 7.78 ERA in his first eight appearances -- including six starts -- at U.S. Cellular Field.
Then again, expectations are high in Kansas City. And Greinke is a big reason why. He went 13-10 last season while setting career highs in strikeouts (183) and innings (202 1/3) and posting the best ERA (3.47) by a Royals starter in 11 years.
"This year, our team's solid all the way through," Greinke said. "We don't have a super-strength anywhere, but we don't have a weakness."
There was some drama in the fourth, when Greinke hit Carlos Quentin between the shoulders after throwing one high and tight in his previous at-bat. Quentin took about a step toward the mound, before plate umpire Bill Hohn jumped in front of him. "The first at-bat kind of scared me because you never want to do that to anyone," Greinke said. "It happens. You hit guys sometimes." ... The Royals claimed 3B Travis Metcalf on waivers from the Texas Rangers on Wednesday. Metcalf, 26, was added to the Royals' 40-man roster and assigned to Triple-A Omaha. ... Guillen said he will drop DeWayne Wise from the leadoff spot if he continues to struggle, but wouldn't set a specific timetable before the game. Fans booed him loudly in the opener and let him hear it again Wednesday, when fouled out to the catcher on a bunt with a runner on first in the third inning. He's 0-for-8 overall. On Tuesday, he went 0-for-4 with three strikeouts and failed twice to put down a sacrifice bunt in the eighth. "To be honest with you, I don't like a couple of at-bats he took [at the end]," Guillen said afterward. "I think he didn't want to strike out. I want him to be aggressive." ... Opening day starter Mark Buehrle seemed a bit taken aback by Guillen's recent assertion that he needs to report to spring training in better shape. "I look at the offseason as resting for the season," Buehrle said. "[I] throw 200 innings during the season. I don't want to play catch all offseason. I think it's a time to rest."