With Butler and Francoeur picking up the offense, all Royals manager Ned Yost needs is Alex Gordon and Eric Hosmer to turn things around for his offense to reach its potential.
"We're just biding our time right now waiting for those two guys to get going, which we know they will," Yost said. "And when they do, we know we've got a really good offensive team. We're just waiting to get firing on all cylinders."
Behind 4 1/3 scoreless innings from the bullpen and 4 2/3 solid innings from starter Luke Hochevar, Kansas City moved to 3-3 on its current nine-game road trip, which concludes with a three-game series in Cleveland starting on Monday.
Francoeur launched his fourth home run in six games over the left-field fence to give Kansas City a 3-2 lead in the sixth.
"He's just hot right now, swinging the bat really well," said Orioles starter Brian Matusz, who took the loss after allowing four runs (three earned) on seven hits in six innings. "He's got a good eye for the plate, battles with two strikes. [He] fouls a lot of pitches off and makes the pitchers work. He's just hot and was able to connect."
Francoeur also scored after a second-inning single, part of a 2-for-4 day that raised his average to .517 during his current seven-game hitting streak. The right fielder entered the stretch with an overall average of just .235.
"Frency is going through one of the better stretches I've seen anybody go through," Butler said.
Butler is on a tear himself, notching his third home run in four games - his team-leading 11th -- with a first-inning no-doubter to left that gave the Royals a 1-0 edge.
"It's one of those things that one guy gets going, then a couple more, and you're starting to see us all kind of get in a groove, which I think we all thought we were going to do this year," Francoeur said. "I'm pretty sure we all thought it was going to happen sooner than later. But at the same time, there's a lot of baseball left, a lot of season, and hopefully our lineup can kind of start getting in a groove together. And if we do that it's going to be huge."
With Butler hitting .303 for the season, Alcides Escobar batting .311 and Francouer playing as well as he is, the Royals hardly look like a team that sits near the bottom of the American League in runs scored.
"There's no telling," Butler said. "That's why we were on top of the league last year in offense. A big reason why was because we had four or five guys who could do damage. And that's basically, whenever you have that in a lineup, it's hard to dodge guys when you have to pitch at everyone. It's coming along. It's a process that's taken a little bit longer this year to come along, but I think we're finding our groove."
Also in a groove on Sunday was Kansas City's bullpen, which locked down the win. Lefty Tim Collins earned the victory with two strikeouts in 1 1/3 innings of hitless and scoreless relief. Closer Jonathan Broxton earned his 10th save.
"Our bullpen is phenomenal," said Hochevar, who scattered seven hits and one walk to allow just one earned run. "Every guy that you hand the ball off to is going to go out and get it done."
Hochevar had to grind his way through the 86-degree heat and an Orioles lineup that fouled off pitch after pitch in a game the righty called a "dog fight." He allowed multiple baserunners in every inning except the second, but buckled down to hold the Orioles to a 1-for-8 mark with runners in scoring position.
Hochevar left after 104 pitches (67 strikes) with two out in the fifth and runners on first and second.
Collins entered and retired four straight, before Kelvin Herrera followed with four more consecutive outs.
"Every time the starter has to come out early it's the bullpen's job to pick him up," Collins said. "We've done a pretty good job of that this year."
Lefty Jose Mijares came on and allowed a double to Chris Davis in the eighth, but forced Wilson Betemit to ground out before Aaron Crow came on and struck out Steve Tolleson.
Broxton retired the first two in the ninth, before J.J. Hardy reached second when Francoeur and second baseman Johnny Giavotella collided while chasing a popup. Francoeur was charged with a two-base error.
Broxton struck out Nick Markakis looking with a 3-2 slider to end the game.