KANSAS CITY, Mo. -- Jeff Francis appeared to be in for a brief night after laboring through 66 pitches in the first three innings.
Alex Gordon and Chris Getz both had three hits for the Royals, who won for only the fourth time in 17 games. Jeff Francoeur drove in two runs and leads the Royals with 32 RBI.
Francis (2-5) threw 35 pitches in the first inning and allowed two runs and four hits. In the third, he pitched out of a bases loaded jam, before settling down and making it through seven innings, while throwing a season-high 114 pitches.
"Francis went out and struggled through the first, gave up two runs," Royals manager Ned Yost said. "He really danced in and out of problems in the second and third. We scored the five runs and he settled down big time.
|More on Angels at Royals|
"He's through three with 66 pitches and your whole goal is try to get him through five. He settled down and ended up getting us through seven. It was a phenomenal job by Jeff. He struggled the first three innings with his fastball and changeup up. He made an adjustment down in the strike zone and started getting quick outs, using his fielders."
Getz's bunt single with one out ignited the Royals' third inning. Joel Pineiro (2-2) could have gotten out of the inning without a run, but his throwing error to second base on Alcides Escobar's comebacker allowed Getz to move to third.
Gordon and Melky Cabrera contributed RBI singles, while Hosmer's double to left scored both. Billy Butler's two-out single scored Hosmer.
"We shot ourselves in the foot on defense," Angels manager Mike Scioscia. "That influenced the game as much as anything. That inning totally changes [without the error]. He's a good fielder and he's really good on that throw. He just misfired. It's a 1-6-3 double play and we're out of the inning."
Piniero said his throwing error was "the big difference."
"The ball just stuck to my hand and I threw a sinker," he said. "I was too quick. I rushed it and my arm came over and I threw it away. It would have ended the inning. I just threw it to the wrong side. I've been around long enough to make sure of one out."
The Angels took a 2-0 lead with Erick Aybar opening the game with a double to right that Francoeur could not find in the sun. Aybar stopped at third on Maicer Izturis' single. After one out, Alberto Callaspo and Mark Trumbo had run-producing singles. Yost said it was Francis' experience that allowed him to pitch deep into the game after the shaky first.
"He's been through it," Yost said. "He's done it. He knows it's not the end of the world. Especially early in the game when you give up two runs and we haven't even hit yet. He knows he's going to have to make an adjustment and hold the score right there and he did that until we scored five. It's just experience and confidence, knowing if he makes his pitches he's going to get through it."
Francis agreed with Yost's assessment.
"When we scored those runs it was like a shot in the arm," Francis said. "I'm not sure I know exactly what I changed. I just tried to work a little quicker and really put the pressure on them. I think experience helps a lot. There's a lot that goes into realizing two runs is not a huge lead."
"We capitalized on a mistake the other team made and turned the game into our favor. It was up to me to go and shut it down. Fortunately, I was able to do that."
The Royals added runs in the fifth and seventh innings with Francoeur driving in both. Francoeur's two-out single in the fifth scored Hosmer, who had singled and stole second. In the seventh, Francoeur's sacrifice fly scored Gordon.
Jeff Mathis' double in the sixth scored Peter Bourjos, who had a bunt single and stole second, for the other Angels run.
Francis, who is 2-0 in his past three starts after going winless in his first eight, allowed three runs, eight hits and two walks.
Piniero allowed six runs, four earned, and nine hits, striking out one and walking none.
Blake Wood followed Francis with two scoreless innings, striking out three.
Angels OF Vernon Wells, who went on the DL May 10 with a strained right groin, could be close to going on a minor league rehab assignment. "His workout today was exceptional," Angels manager Mike Scioscia said. "He's running at 100 percent. It was a beautiful thing to see." RHP Felipe Paulino, who was acquired last week from Colorado, will make his first start for the Royals on Wednesday. He will become the eighth starter used by the Royals this season. C Bobby Wilson was the Angels DH for the first time this season.