Mike Moustakas and Brayan Pena each drove in two runs for the Royals, who have won three straight and four of six. Mendoza (8-9) allowed two runs and eight hits in six-plus innings.
The Indians have lost 40 of 52 games since July 26 when they were 50-49 and trailed AL Central-leading White Sox by 3 games. They have lost six straight against Kansas City and eight of nine overall in the season series.
Mendoza (8-9), who was scratched from a Wednesday start with the illness, got off to shaky start. Shin-Soo Choo and
Jason Kipnis singled with no outs in the first and moved up on Asdrubal Cabrera's sacrifice.
"He did a great job of getting out of it," Royals manager Ned Yost said. "Striking out Santana was a huge out and he ended up getting out of it."
Mendoza was sick for much of the week.
"On Monday, I felt terrible, all my body hurt," he said. "I just came to the field and tried to get something to feel better. Tuesday I came in early, I started feeling better. Tonight, I felt good, felt 100 percent."
Kansas City pushed across two runs in the second on RBI singles by Pena and Irving Falu. Moustakas tacked on a sacrifice fly in the third and a run-scoring groundout in the fifth.
Mendoza departed after Ezequiel Carrera led off the seventh with a bunt single.
Tim Collins hit Choo with a pitch and yielded a two-out, two-run single to Santana.
Kansas City responded with two runs in the eighth to make it 6-3.
Eric Hosmer, who had the winning RBI single in Thursday's victory over Chicago, hit a sacrifice fly and Pena doubled in Jeff Francoeur.
Greg Holland worked the ninth for his 15th save in 18 opportunities.
"The eighth inning was big after it got back to a one-run lead, to get two more runs and get Holland some breathing room," Yost said. "He came in for the third night in a row and was fantastic."
Mendoza earned his first victory since Aug. 11. He was 0-1 with four no-decisions since his previous win.
"Offensively, we continue to struggle, especially with situational hitting," Indians manager Manny Acta said. "The first inning we had a situation where we could just take the lead, and who knows what would happen after that. But, we failed to drive in a run with a runner on third and the infield back."
Justin Masterson (11-15) lost his third straight start. He was charged with four runs and seven hits in six innings.
Brantley singled home Cabrera in the third inning for Cleveland's first run.
NOTES: Royals C
Salvador Perez and LF
Alex Gordon were held out of the lineup with bruised hands. Manager Ned Yost said Perez has been battling sore hands for a week and likely would not play in the weekend series against the Indians. Gordon bruised his hand while sliding into home in the sixth inning Thursday. Gordon did come in as a defensive replacement in the eighth. Yost said Gordon probably would start Saturday. .. Indians RHP Ubaldo Jimenez, who has lost five straight decisions, will start Saturday. The Royals will counter with rookie LHP Will Smith. ... George Toma, who was the Royals' groundskeeper from their inaugural season until 1995, was inducted into the club's Hall of Fame before the game. Toma becomes the 25th member of the Royals' hall.