The winning run, oddly, scored when A.J. Ellis took a Wade Davis cutter on the arm with the bases loaded and two outs in the eighth inning after Matt Kemp told him to "get all over the plate" to battle his cutters. That run was almost as unusual as the Dodgers' second run, scored after Gordon's double when he was balked home by Royals starting pitcher James Shields.
The win allowed the Dodgers to take the rubber game of the three-game series. Jamey Wright got the victory with a scoreless 2 2/3 innings in relief of Haren, who was twice given a two-run lead and could not last long enough to qualify for the win.
Kemp homered, but it was the energy provided by Gordon (triple, three singles, one steal, two runs) and Yasiel Puig (triple, double, RBI) that helped cap a 4-2 trip and a second consecutive win without Hanley Ramirez, who is nursing an arthritic right shoulder and was unavailable.
"This is a good road trip for us," said Mattingly, whose club is 13-6 with tightened defense since he called it out for selfish play.
Wilson, whose Bobblehead Night is Thursday, followed J.P. Howell and Brandon League, pitching the ninth inning for his first save since April 12, 2012. Closer Kenley Jansen had pitched on four of the previous five days, and Mattingly said to use him in this game meant he would be down the first two games of the Cardinals series at home.
The game was in doubt to the final play, first baseman Scott Van Slyke's leaping catch of Lorenzo Cain's one-out liner headed for the right-field corner with the tying run on second. Van Slyke then fired to Rojas at second for a game-ending double play.
Although Haren, who went 4 1/3 innings, remained 7-4 with a no-decision, his lack of velocity leaves little room for his recent command issues, resulting in 14 home runs over his past nine starts, compared with only two homers in his first seven starts.
He allowed two homers to the Royals, to Cain leading off the first inning and Jarrod Dyson leading off the fifth (first in a year).
"We won the game. I'm not going to be bringing us down," Haren said. "We have 25 guys pulling in one direction. It seems like we're doing a better job of that the last few weeks."
Kemp homered leading off the second inning, and speed at the top of the order took over in the third inning. With one out, Gordon's liner short-hopped the right-field wall, and as Cain waited for the ball to come to him, Gordon kept running for a triple that could have been a double. Gordon leads MLB with nine.
Shields then seemed set on picking Gordon off third base, but his third attempt was called a balk by umpire Hunter Wendelstedt, and it brought home Gordon. Puig then lined into the left-field corner, and while Alex Gordon let the ball play him, Puig hustled for a triple. He scored by tagging up when Gordon went into foul territory to catch designated hitter Adrian Gonzalez's fly down the line, Gonzalez's seventh consecutive game with an RBI.
Kansas City cut into the lead in the fourth inning, but in the fifth with one out Gordon singled through shortstop Alcides Escobar, took second for his 40th stolen base and scored when Puig doubled down the left-field line.
One out later, with two on, Haren was replaced by Wright, who wild-pitched the runners to second and third. Rojas robbed Billy Butler of a two-run single and got the second out at first base as the tying run scored. Wright struck out Gordon to end the rally.
"Only going 4 1/3 is no good," Haren said. "I'll be better, I'm confident. I'm healthy, but the results haven't shown. I'll get back to pitching the way I was the first month. I'm confident I can do that."