ANAHEIM -- Jered Weaver and Zack Greinke, two of the game's elite right-handers, hooked up in the Wednesday afternoon sun at Angel Stadium, bringing all the right stuff to impress 39,093 patrons of the art.

With Weaver and Greinke watching, their exquisite painting done, Bobby Abreu's walk-off homer against Jesse Chavez handed the Angels a 2-1 victory in the 10th inning and a three-game sweep of the Royals.

The win went to Brian Fuentes, who moved to 4-1 with a perfect 10th inning after Kevin Jepsen had shut down the Royals in the ninth.

"It was a changeup [Chavez] threw to me," Abreu said of his blast to right-center. "He left it up a little bit, and I made pretty good contact. I wasn't looking for a home run."

The Angels are 5-1 since Abreu moved into the leadoff spot. His objective in that situation was to get on base.

"I have to be realistic," Abreu said. "If it happens, I'll take that. It feels great. I don't do that very often. Just enjoy it. Live the dream."

The Angels, having learned their lesson from the loss of Kendry Morales for the season after a celebrative walk-off grand slam, did not crowd Abreu at home.

"We have rules on that -- everybody knows that," Abreu said. "After I touch the plate, we get emotions and celebrate."

Weaver, the Majors' strikeout leader with 182 after 11 Royals went down, deserved yet another win that did not fall his way. He easily could have 16 or 17 now instead of being 11-7, but he was beaming anyway.

"It's not over 'til it's over," he said, repeating a famous line in reference to the American League West and the runaway Rangers, who entered Wednesday night eight games ahead of the Halos. "We're going to go out and keep playing, see what happens."

Weaver carried a one-hit shutout into the sixth. Leading off, Yuniesky Betancourt launched a fastball over the wall in center, beyond Reggie Willits' leaping effort, to bring the Royals even. It was Betancourt's 10th homer of the season.

"That ball just kept carrying," Willits said. "I banged up my arm a little trying to get to it, but it just seemed to catch a jetstream and take off."

Slender is the margin of error, it seems, for Weaver, who always seems to be dueling an All-Star or ace, or both.

"Betancourt got me with a heater up," Weaver said. "Greinke battled. It was fun. It's always going to be a battle going against their No. 1, guys having great years. I'm just trying to limit the runs as much as possible."

Betancourt had a chance to give Kansas City the lead an inning later after a pair of singles resulted in two men in scoring position. But Weaver retired the Royals' shortstop on a fly ball to Willits in left center.

Weaver pitched out of another jam in the eighth, pumping his fist after retiring Alex Gordon on a slow roller down the first-base line with his career-high 121st pitch, a changeup. Weaver made the tag on Gordon.

The Royals had runners first and third with one out on a pair of soft singles, but Kila Ka'aihue popped out and Gordon rolled out after Wilson Betemit had walked on a full count.

"They're a very aggressive club early in counts, so we went to changing speeds," Weaver said, applauding the pitch selection of catcher Jeff Mathis. "Me and Matty had a good rhythm for the most part. I squirmed my way out of a couple of jams."

The Angels broke through first in the third inning. Mathis singled leading off and was forced on Willits' sacrifice attempt. Willits darted to third on Abreu's opposite-field single and scored on Erick Aybar's sacrifice fly.

"That was a great read by Reggie," Angels manager Mike Scioscia said, Willits having noticed Gordon playing deep in left and taken off with the crack of the bat.

Greinke, his fastball reaching 98 mph on the radar gun with a superb changeup behind it, retired Torii Hunter -- returning to the cleanup spot after serving a four-game suspension -- on a ground ball to leave two men stranded.

Weaver escaped a first-and-third situation in the second by striking out Brayan Pena, his third K of the inning. Weaver struck out the side again in the fifth on his way to his sixth career game and fourth this season with double-figure K's.

"It's not something I'm striving for," Weaver said, having surpassed his strikeout total of last season (174) with eight or nine projected starts left. "I've been getting in good counts, putting myself in position, and they've been coming. It just happens."

Showing no signs of weakening, Weaver has yielded just four earned runs in his past four starts with 35 strikeouts in 29 innings. He has allowed three or fewer earned runs in 20 of his 25 starts.

"Changing speeds and pitching, that's as good as we've seen Weav," Scioscia said.

Greinke held his premium gas -- 96 mph on a Hideki Matsui strikeout to end the sixth -- when he needed it.

"He really pitched great -- he was moving the ball in and out, pushing guys off the plate, had a really good slider," Royals manager Ned Yost said of Greinke. "He threw some really good changeups. The command of his fastball was excellent.

"Weaver really did a great job of changing speeds. We could not pick up his slow stuff; we just struggled all day to pick up his changeup and to pick up that slow curveball. I focused in on his arm speed, and it was as good as I've ever seen."