KANSAS CITY, Mo. – John Lackey’s early struggles proved costly on Sunday.

Lackey gave up four runs on five hits and two walks in the first three innings, and that was enough for the Kansas City Royals, who held on for a 4-3 victory over the Boston Red Sox.

James Shields earned his first home win in more than three months and Alex Gordon homered as the Royals took three of four from the Red Sox. The Royals have won seven consecutive series for the first time since 1991.

“They’re a pretty good team,” Lackey said. “They have the most talent they’ve had in a while. It looks like they’re starting to come together. They’ve got some starting pitching and they have always had good arms in the bullpen.”

Lackey, who is 0-4 in his past five starts, walked David Lough and Eric Hosmer to lead off the first. Gordon’s two-out single scored Lough to tie it at 1.

“It was a grind early,” Lackey said. “I wasn’t feeling really great. I had a couple of 3-2 counts and didn’t make my pitch. I was lucky to get the ground ball for the double play and then I found my groove and started to make my pitches.

“For me to walk two in one inning let alone to lead off the game is hard to believe. I didn’t execute and I lost the game.”

After Gordon’s home run with one out in the third, Lackey allowed just two more singles and walked none before departing after 111 pitches and seven innings.

“The third inning was actually pretty good.” Lackey said. “It was just the one pitch (to Gordon). Everything was pretty good after the second.

“I started to make my pitches with the breaking ball. We’ve got a good offense. I was trying to hang in there and let the guys come through.”

In his past five starts, Lackey (7-10) has allowed 42 hits and 18 earned runs in 322/3 innings.

“Early, John couldn’t find his rhythm or his release point and they were able to get some hits and steal some bases,” Red Sox Manager John Farrell said. “He settled in and gave us seven strong innings.”

Shields (7-8), who had not won at Kauffman Stadium since an April 30 victory over Tampa Bay, limited the Red Sox to three runs and seven hits over seven innings. He struck out five and walked three.

Royals relievers Tim Collins, Aaron Crow and Greg Holland, who earned his 32nd save in 34 opportunities, worked two scoreless innings to protect the one-run lead. The bullpen has allowed one run in 20 innings on this homestand.

Gordon’s homer was his third in five games.

Shane Victorino scored Boston’s first run in the first when he doubled, stole third and came home on catcher Salvador Perez’s errant pickoff throw.

The Royals scored two runs in the second, with Jarrod Dyson and Lough delivering RBI singles. Dyson’s hit drove home Mike Moustakas, who doubled to start the inning. Dyson stole second and scored on Lough’s flare to shallow right.

Ryan Lavarnway’s two-out single in the sixth scored Daniel Nava and Stephen Drew, trimming the Kansas City lead to 4-3. Drew went 2 for 4 and is hitting .422 in his season-high, 12-game hitting streak.

NOTES: The Royals obtained IF Jamey Carroll from the Minnesota Twins in a trade after the game for a player to be named or cash considerations. Yost said Carroll would platoon with Chris Getz, when he returns from the disabled list, at second base and backup third and shortstop. …

Red Sox RHP Clay Buchholz, who was 9-0 with a 1.71 ERA before going on the disabled list June 9 with a neck strain, threw another side session Sunday and is scheduled to throw again Tuesday. “We’ll get through Tuesday before we determine that,” Farrell said of sending Buchholz out on a rehab assignment. …

Royals 2B Elliot Johnson is hitless in his past 27 at-bats and 1 for 49 since June 19.

Only subscribers are eligible to post comments. Please subscribe or to participate in the conversation. Here’s why.

Use the form below to reset your password. When you've submitted your account email, we will send an email with a reset code.