KANSAS CITY, Mo. (AP) -- John Lackey's early struggles proved costly on Sunday.
Lackey gave up four runs and five hits and two walks in the first three innings, but 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, 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 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 has allowed 42 hits and 18 earned runs in 32 2-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 hit a 2-2 pitch from Lackey (7-10) out to right in the third inning for his third homer in five games.
Shane Victorino scored Boston's first run when he doubled in the first, stole third and came home on catcher Salvador Perez's errant pickoff throw.
The Royals scored two runs in the third, 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. ... IF Miguel Tejada, 39, was placed on the 15-day disabled list with a strained right calf as the Royals made seven roster moves. Perez came off the concussion list, while RHP Wade Davis was removed from the family emergency leave list and will start Monday against Miami. IF Irving Falu was recalled from Triple-A Omaha. LHP Donnie Joseph was optioned to Omaha, while C Brett Hayes was designated for assignment. ... 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," Red Sox manager John 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.
Copyright 2013 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.