SURPRISE, Ariz. -- Lorenzo Cain and Mike Moustakas, two of the Royals' hottest hitters, each ripped a solo home run and had a perfect afternoon in a 7-2 victory over the Dodgers on Wednesday at Surprise Stadium.

Moustakas went 3-for-3 with two RBIs, raising his average to .460. Cain's two hits with a walk boosted his mark to .474. Johnny Giavotella, battling for the Royals' second-base job, also homered.

"I'm just seeing the ball good right now," Moustakas said. "It's still spring, it still doesn't count too much, but right now we're playing good baseball altogether, so that's important thing we're taking from this."

The Dodgers' spectacular outfielder, Yasiel Puig, tripled, singled and had a sacrifice fly for another perfect day after going 4-for-4 against the A's on Wednesday. He's hitting .521 (25-for-48) with eight extra-base hits and 11 RBIs.

"Again, we just keep building up expectations. If he doesn't hit .500 now, he's terrible," Dodgers manager Don Mattingly said of Puig. "Again, he's facing a good big league pitcher today in Wade Davis and he continues to look good.

"He's still a wild horse out there. He plays fast and he plays hard. He's going to make some mistakes right now. He continues to learn all the time. That's really what you want to see. You don't mind mistakes as long as the guy is continually not making the same ones."

The Royals' record improved to 18-6-1. The Dodgers are 9-14-3.

The Dodgers weren't very artful in the first inning, with two errors and a wild pitch helping the Royals score three runs, two of them unearned.

Dodgers starter Aaron Harang began by giving up Alex Gordon's double and Alcides Escobar's single, then struck out Billy Butler. When Harang tried to pick Gordon off third base, Nick Punto missed the ball and Gordon scored. Moustakas singled home Escobar, but was thrown out trying for second.

On Salvador Perez's grounder to first base, Harang covered, but dropped the toss for another error. Cain doubled Perez to third and then he scored on Harang's wild pitch.

Royals starter Wade Davis was charged with one run in his four-plus innings in his first Major League start since March 3, giving up two hits and four walks. Davis left a bases-loaded, no-out jam in the fifth to Louis Coleman, who got a double-play grounder and a strikeout to escape with minimal damage.

Up next: The Dodgers travel to Tucson Thursday for what has become the annual Christina Taylor Green charity game. Stephen Fife will start against the Cubs in the 1:05 p.m. PT game, and among the regulars making the trip are Matt Kemp and Andre Ethier. Also listed on the travel roster is Puig.