KANSAS CITY, Missouri — Edinson Volquez must have gotten tired from all the times he tipped his cap.
He certainly didn't labor much on the mound.
Volquez dazzled over eight innings in his Royals debut, and Kansas City's defense made a series of spectacular plays behind him in a 4-1 victory over the Chicago White Sox on Thursday that finish off a season-opening three-game sweep.
"Unbelievable," said Volquez, who allowed one run on four hits in his first start since signing a $20 million, two-year deal with the Royals in the offseason. "We have the best defense in baseball right now. It gives you a lot of confidence."
Lorenzo Cain made two dramatic catches while running into the center field wall. Third baseman Mike Moustakas made a diving snare of a hot ground ball. And second baseman Omar Infante snared a line drive before turning an inning-ending double play.
"We got some great defensive plays," Royals manager Ned Yost said.
Some great offense, too. Salvador Perez hit a two-run homer, and Cain and Kendrys Morales also drove in runs, helping the AL champions improve to 3-0 for the first time since a season-opening sweep of Detroit in 2008.
Greg Holland worked a perfect ninth for his second save in less than 24 hours.
"That's what they are known for, playing small ball, bunting guys over, playing great defense," White Sox center fielder Adam Eaton said. "They play the game hard. They're stealing bags. Lorenzo Cain making plays. Perez is throwing guys out. They're a solid team."
Meanwhile, the Royals pounded Chicago's John Danks (0-1), who had been 7-0 against them. He allowed all four runs on seven hits and a walk in 5 2-3 innings.
"There are things we certainly need to do better," he said. "That's just the way it's going to be. We have too much talent in here to keep playing like this, but we'll be better."
The White Sox were swept in an opening series for the first time since 2004, and head into their home opener against Minnesota after losing to the Royals for the 14th time in 17 games.
"There's no freaking out here," Eaton said, "just a little frustration right now."
The Royals took the lead on Cain's RBI groundout in the first, but it was his two dazzling plays in center that will make highlight reels. First, Cain collided with the wall at full speed to rob Adam LaRoche of a leadoff hit in the second. Then, he backed into the wall to catch a long fly ball by Micah Johnson that ended the third.
Morales added an RBI double off Danks in the sixth inning, and Perez chased the left-hander a couple of batters later when he sent a full-count pitch into the bullpen in left field.
It was the sixth homer of the series for the Royals, who needed 15 games to hit their first six last season. They went on to finish last in the majors in home runs.
"If somebody would say, 'Boy, you're firing on all cylinders,' I'd have to agree," Yost said. "To get off to this type of start is exciting and fun, and you just have to ride it as long as you can."
Royals LF Paul Orlando started in place of Alex Gordon, who got a planned day off. After spending 10 years in the minors, the Brazilian made the most of it. He walked in the third inning and then hit a leadoff triple in the fifth.
CAN YOU HEAR ME NOW?
The game was delayed nearly 5 minutes in the first inning when Kauffman Stadium's phone system went down. With no communication to their replay officials, the managers would have had to challenge plays only on their own observations. Service was restored in the third inning.
White Sox: LHP Chris Sale (broken right foot) is expected to start Sunday against the Twins.
Royals: RHP Luke Hochevar (Tommy John surgery) began a rehab assignment Thursday with Triple-A Omaha at New Orleans. The hard-throwing reliever missed all of last season.
White Sox: RHP Hector Noesi, claimed by Chicago off waivers last season, will start his club's home opener Friday afternoon against Minnesota.
Royals: LHP Jason Vargas faces his former team Friday night when Kansas City opens a six-game road trip with the first of three games against the Angels.