Santana and Francisco Lindor hit back-to-back homers with two outs in the ninth inning off Herrera to lift the Indians to a 3-1 victory over the Royals on Saturday.
"A nice fastball," Santana said. "Herrera has really good stuff. He throws hard. That's why he's the closer. He has a very good changeup. I tried not to do too much off him. I tried to make good contact and make a home run."
Herrera (1-1) gave up the home runs in a span of three pitches. Santana took a 2-0 pitch out to right-center. Lindor hit his eighth, which landed in the Indians' bullpen.
"We'll take it," Indians manager Terry Francona said. "It's a hard game to win."
The Royals led 1-0 going into the eighth, but the bullpen could not hold it.
Royals left-hander Jason Vargas allowed four singles over six-plus scoreless innings in a no-decision.
Vargas lowered his ERA to 1.19. He has a 0.34 ERA in four home starts, giving up one earned run in 26 2/3 innings. Opponents are hitting .181 off him at Kauffman Stadium.
Indians starter Josh Tomlin, who entered the game with an 8.87 ERA, limited the Royals to one run and three hits over seven innings.
"I knew all four pitches were working pretty well," Tomlin said. "They were in the zone. I was able to locate them. I knew where they were going."
"It's definitely tough," Cain said. "I know we didn't score many runs, but we lost it in the eighth. They tied it and then hit two home runs. You've got to put up runs to win ball games and we definitely haven't been doing it."
Vargas was removed after Kipnis led off the seventh with an infield single.
Rookie Matt Strahm replaced Vargas and struck out Brandon Guyer with a 95 mph fastball. After walking Yan Gomes on five pitches, the runners advanced to second and third on Abraham Almonte's groundout to first.
Alex Gordon made a diving catch of Santana's blooper to shallow left to end the inning and strand the runners.
Royals: RF Jorge Soler (left oblique strain) was activated from the DL. Soler, who was injured in spring training, hit .308 with a .538 slugging percentage in 11 rehab games with Triple-A Omaha. He went 0-for-3. ... Royals C Salvador Perez was struck in the left forearm by a foul ball off the bat of Lonnie Chisenhall in the eighth and was replaced by Drew Butera in the ninth. X-rays were negative, revealing a bruise. . The Royals optioned RHP Miguel Almonte back to Double-A Northwest Arkansas one day after he was recalled.
Indians: RHP Mike Clevinger was recalled from Triple-A Columbus and will start the series finale.
Royals: LHP Danny Duffy will try to snap a personal two-game losing streak when he starts the home stand finale.