Luis Mendoza pitched into the sixth inning and Kansas City's bullpen made a lead stand up, helping the Royals beat the Cleveland Indians 4-2 Thursday.

Jeff Francoeur had a go-ahead single in a three-run fifth for Kansas City, which snapped a 12-game losing streak with an 8-2 victory Wednesday night. The Royals won consecutive games for the second time this season.

The Indians, who were coming off a 7-2 road trip, fell to 2-6 at Progressive Field.

Mendoza (1-2) was pulled with the bases loaded and no outs in the sixth, but the Indians scored only one run on Travis Hafner's sacrifice fly. Relievers Tim Collins, Aaron Crow and Jonathan Broxton held Cleveland in check the last four innings. Broxton pitched the ninth for his second save.

Josh Tomlin (1-2) allowed four runs in 4 2-3 innings.

Broxton retired Jose Lopez to start the ninth, but Jason Kipnis singled. After Aaron Cunningham flied out, Michael Brantley walked on a 3-2 pitch. Asdrubal Cabrera flied out to end the game.

The Royals broke a 1-all tie in the fifth with consecutive two-out hits by Francoeur, Mike Moustakas and Brayan Pena. Alex Gordon, who went into Wednesday's game batting .167, had two hits and walk. He had three hits Wednesday and raised his average to .213 the last two games. Billy Butler, who homered twice Wednesday, had two hits and was hit by a pitch.

Josh Tomlin (1-2) allowed four runs in 4 2-3 innings.

The fifth-inning rally started on one-out singles by Gordon and Butler. Eric Hosmer's flyball to deep right moved Gordon to third before Francoeur's broken-bat hit to left put the Royals ahead. Shelley Duncan attempted to make a diving catch, but came up short.

Moustakas followed with a grounder through the right side that scored Butler and finished Tomlin. Pena lined a single to right off Dan Wheeler for the third run.

The Indians outscored the Royals 32-19 in a three-game sweep at Kauffman Stadium earlier this month. Mendoza was the losing pitcher in a 13-7 defeat on April 15 in Kansas City. He allowed nine runs — five earned — and nine hits in four innings. This time he gave up two runs.

Tomlin was coming off a strong outing against Seattle in his last start when he allowed one run and five hits in eight inning.

Kansas City loaded the bases with nobody out in the first, but scored only one run.

The Indians tied the game in the third. Jose Lopez singled, went to second on a groundout and took third on a wild pitch. Aaron Cunningham's single off the glove of third baseman Mike Moustakas made it 1-1.

Cleveland had the bases loaded with nobody out in the sixth when Collins replaced Mendoza. Gordon caught Hafner's drive in front of the wall in left that scored Brantley. Collins struck out Duncan and retired Jack Hannahan on a groundout.

Indians first baseman Casey Kotchman, who is in an 0-for-22 slump, didn't start Thursday. He's batting .140 with two homers and four RBIs. Right fielder Shin-Soo Choo missed his second straight game with tightness in his left hamstring.

NOTES: Royals LHP Danny Duffy will miss his scheduled start against Minnesota on Friday because of tightness in his left elbow. The team expects Duffy to start next week against Detroit. He's 1-2 with a 3.63 ERA in three starts. ... OF Lorenzo Cain will likely be sidelined for a month with a strained left hip flexor. Cain was on a minor league rehab assignment while recovering from a strained left groin. ... Cleveland OF Grady Sizemore, who had back surgery March 1, ran in the outfield and played catch Wednesday, and is scheduled to hit off a batting tee this weekend. ... The Indians begin a three-game series against Los Angeles on Friday at Progressive Field. RHP Justin Masteron will face RHP Jered Weaver.