There were two rain delays with the second after the fourth inning lasting 3:58. The game didn't end until nearly 7 hours after it started.
"We had a lot of waiting in between a baseball game," Angels manager Mike Scioscia said.
The official game time was 2:48, while the rain delays totaled 4:06.
"It's a waiting game," said Eric Hosmer, who had one of the six Royals hits and scored a run. "You basically hang out. We heard it was going to be a couple of hours. It wasn't one of those things where we were thinking it could start any minute, so we had a little heads up. It's all part of the grind of the season. There are going to be days like that. It's what we all sign up for."
Pujols, who has 14 RBIs in his past 13 games, singled home runs in the third and sixth innings. Freese, who had three hits, drove in three runs, two in the four-run sixth and the other in fourth. He has six RBIs in his past seven games, after driving in only three in his previous 26 games.
"It was nice to come out and get some runs after the rain," Freese said. "It was almost like starting a new game so it was nice to get some runs, and nice to get the win."
Kole Calhoun added three hits, scored two runs and drove in one. The Angels' four-run sixth included four hits, two walks and three stolen bases.
Rookie right-hander Mike Morin (2-1), who went to high school at a Kansas City suburb, allowed two runs on two hits over two innings to pick up the victory.
"It was cool," Morin said. "Scioscia told me I was going to get the ball and I had all my family and friends here. They were probably the only ones left after the rain delay. It's been a great weekend. I'll never forget it. It was just fortunate that I could be in there to get the win in front of them."
Angels left-hander Hector Santiago was not allowed to come back out after the second delay. He pitched four scoreless innings, giving up four hits.
"Somebody sent me a message and asked me `did you make a witch angry?'" said Santiago, who needed to pitch one more inning to claim his first victory of the season and losing his first seven decisions. "It seems like everything that can have an effect on me getting a win has happened. But I gave four scoreless innings and gave us a chance to win, and the team got the win, so that's what I care about."
Royals rookie Yordano Ventura (5-7) took the loss, yielding two runs on seven hits over four innings.
"I felt like I was in command of the strike zone, but unfortunately the rain got to me and I couldn't go back out," Ventura said with Royals catching coach Pedro Grifol acting as his interpreter. "I prepared to pitch today and I wanted to go back out, but there was no way I could go back after that long rain delay."
Veteran left-hander Bruce Chen, who had not pitched since April 24 and going on the disabled list with a bulging disc, replaced Ventura after the game resumed. He allowed four runs on four hits, all in the sixth, walked two and struck out eight over five innings.
Jason Grilli made his Angels' debut after being acquired in a Friday trade with the Pirates and worked a perfect eighth, striking out one.
LHP Brandon Finnegan, the Royals' first selection and 17th overall pick in the draft, signed for $2,200,600. Finnegan, who went 9-3 with a 2.04 ERA as a junior and helped lead TCU to the College World Series, will report Monday to the Royals' Class A Wilmington, Delaware farm club. ... Angels LHP Tyler Skaggs, who is on the disabled list with a right hamstring injury, threw in the bullpen and could make a start at Chicago, the Angels' next stop on this trip. ... The Angels have won eight of their past 10 meetings against the Royals. ... The Royals have lost seven of nine after their 10-game winning streak ended on June 19.