That's how good Joe Saunders and Zack Greinke were on Saturday night in a confrontation that went to Saunders and his Angels, 1-0, at the expense of Greinke and the Royals in front of 39,776 at Angel Stadium.
It was two hours and five minutes of classic hardball.
"An awesome game, just awesome," Saunders said, having delivered his first career shutout and second complete game.
The only run came courtesy of Gary Matthews Jr., who stroked a curveball by Greinke into the right-field corner for a leadoff double in the third inning.
Taking third on Erick Aybar's sacrifice bunt, Matthews scored when Chone Figgins -- who five innings later would deliver a game-saving defensive play -- lifted a sacrifice fly to right.
An American League All-Star last season, Saunders answered the challenge against the Majors' dominant starter over the first five weeks of the season.
"That means everything," Saunders said of the shutout. "It's special. You know it's in you, but you haven't done it yet. When it comes out, it's very rewarding.
"You know the guy [Greinke] is dealing. Give up one or two runs and you might lose."
Saunders, who unloaded 101 pitches, was throwing 91-93 mph gas in the ninth inning, striking out Mark Teahen and Jose Guillen before Billy Butler skied one to Torii Hunter in center to end it.
Saunders, getting a pair of ground-ball double plays to end innings and a sensational play by Figgins behind third to finish the eighth, handed Greinke (6-1) his first loss of the season.
Greinke went the distance, surrendering just four hits without a walk, striking out five.
Holding the Royals to five hits and one walk, Saunders rose to 5-1 and shaved his ERA to 2.66.
"I didn't watch any of it, but I'm pretty sure he was using a lot of changeups and keeping us off balance that way," Greinke said of Saunders. "It's a tough pitch. I wish I had that pitch.
"It's a pitch I always work on but it never does anything. It's tough to hit -- fastball, changeup you can win a lot of games just on those two pitches."
Greinke's ERA rose slightly from 0.40 to 0.51.
"I've always thought he had good stuff," Matthews said off Greinke, the 25-year-old right-hander. "But his record coming in -- 6-0, 0.40 -- that was unreal. I was curious to see what he'd done to get to where he is.
"I thought he located very well and changed speeds on his fastball. He'd throw a batting-practice fastball down and away and then bring the heater up. I didn't think he threw the changeup as much as in the past.
"The ball I hit was a curveball on the inner half. I got a pretty good look at it. It's always good to contribute. Joe needed to pitch a great game for us, and he did."
Matthews' run was the first yielded on the road this season by Greinke, making his third start in unfriendly environs. It ended a run of 17 straight scoreless innings on the road by Greinke.
The Angels let a scoring chance get away in the sixth, Greinke setting down the top of the order after Aybar's leadoff double.
Leading off the seventh, Hunter sent Coco Crisp against the wall in center to catch his 400-foot drive. Crisp came through again later in the inning when he got a great break on Juan Rivera's two-out drive to the right-center gap that would have scored Kendry Morales, who had singled.
Greinke got stellar support from his defense right out of the chute. Dazzling plays by David DeJesus in left on Figgins and by Teahen at third base helped Greinke make it a perfect first inning, and he left Morales stranded at second after a double in the second.
Saunders quickly found his groove -- and never lost it.
"Last year he was an All-Star and was on everybody's top ten list of pitchers in our league," Angels manager Mike Scioscia said of his 27-year-old southpaw. "He showed it tonight."
Having retired 10 in a row after Teahen's first-inning single, Saunders put himself in harm's way in the fifth when he walked Butler leading off and allowed a single to Alberto Callaspo. But the lefty set down the next three hitters.
A double-play grounder by DeJesus erased Crisp's leadoff single in the sixth. Another double play off Callaspo's bat ended the seventh after Jose Guillen's leadoff single. During this inning, Saunders lost his footing making a pitch to DeJesus and there was concern he'd turned an ankle, but he was able to stay in the game.
"An excuse-me throw," Saunders called it. "I got rid of it somehow."
The Royals' biggest threat arrived in the eighth after Aybar's errant throw on Willie Bloomquist's grounder leading off the inning. Miguel Olivo singled, and Mike Aviles' bunt had runners in scoring position with one out.
This is where Figgins put his stamp on the game.
Fielding Crisp's hard grounder to his left, Figgins tagged Olivo, who had strayed too far off second, and nearly doubled off the fleet Crisp at first.
DeJesus, a left-handed hitter, grounded sharply over the bag at third. Figgins was there in a heartbeat with a back-handed stab, gathering himself, and firing a bullet to Morales at first to quell the threat.
"That was the play of the game," Saunders said. "We had him set up, he stuck his bat out there, and Figgy made a great play."
DeJesus thought he hit it hard enough to drive in the tying and go-ahead runs.
"I know I hit it good," DeJesus said. "I know I made a play on Figgins [in the first inning], he's going to want to make a play on me. That's what he said to me, 'You robbed me, I'm going to rob you.'
"Zack pitched his usual self, gave up one run, and Saunders was pretty good, too. He was changing up, able to throw his changeup. He didn't throw too many curveballs. He had his two-seamer running."
And when he needed it late, Saunders blew his 93-mph heater past Guillen.
Lyle Spencer is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.