KANSAS CITY -- So much for the mighty Red Sox.
James Shields pitched seven strong innings and Alex Gordon drove in two runs, including a solo homer, as the Royals knocked off the team with the American League's most wins, 4-3, on Sunday while 24,935 fans enjoyed a balmy afternoon at Kauffman Stadium.
The Royals won the series, 3-1, for their seventh consecutive series victory since the All-Star break, during which time they're 18-5. They also won the season series against the Red Sox by taking five of seven games.
"If you want to go to the playoffs, you have to beat playoff-caliber teams, and that's a playoff team this year," closer Greg Holland said. "We're chasing not only Detroit and Cleveland, but several others in the Wild Card too. We just have to go out there and win series."
Detroit lost and Cleveland won, so the Royals gained a game in the AL Central, where they're now 7 1/2 games back of the Tigers and 4 1/2 games out of the Wild Card race.
"I feel like ever since the All-Star break we've been making a statement," Shields said. "We're here to stay and we're here to compete. Our bullpen has been phenomenal and our defense has been great and we're getting some timely hitting, which is good."
Shields had a shaky first inning, in which he gave up a double to Shane Victorino and walked Dustin Pedroia with one out. Victorino stole second and scored from third on Salvador Perez's failed pickoff attempt that hit Victorino in the back. Shields settled in after that and struck out the next two batters to get out of the inning. He then rolled off four scoreless frames beginning in the second.
With the Royals leading 4-1 in the fifth, left fielder Gordon came up big for Shields with two runners on and no outs when he crashed into the wall to catch Jacoby Ellsbury's fly ball in foul territory. Shields retired the next two batters to leave two runners stranded.
"Big play right there," Shields said. "To be able to get one out right there gave me the confidence to go out there and attack the next couple hitters."
Gordon held his own on offense, too, going 3-for-4 with an RBI single, a double, a homer and a stolen base. He is 8-for-19 in his last five games, with two doubles and three home runs.
"He went through a little down period about a week ago, but in the last week he's been swinging the bat really well," manager Ned Yost said. "The thing about Alex is, when he gets hot, he can carry you for a while. Couple that with his defense, that was a great play that he made up against the wall. I don't know how he made that play. That ball was about a quarter of an inch away from that wall when he caught it and slammed into it, but a great day for Alex Gordon."
The Royals scored all four of their runs against Boston starter John Lackey. Gordon's RBI single in the first inning tied the score at 1, and the Royals took the lead with back-to-back RBI singles by Jarrod Dyson and David Lough in the second. Gordon added what proved to be the decisive run with his homer to right field in the third.
After the first three innings, Lackey only allowed two more hits, but he took the loss.
"He settled down and kept us at bay, but when you've got Shields out there -- one of the best competitors I've ever met -- that might be enough," Gordon said.
The Red Sox cut the lead to 4-3 on Ryan Lavarnway's two-run single in the sixth inning, but Shields and the Kansas City bullpen stood firm and held Boston scoreless for the final three frames.
"It was a grind early," Lackey said. "I found some things later in the game and got in a groove. But Shields was pitching well, so it was a little too late."
Shields was coming off his worst start of the season, in which he gave up seven runs -- including three home runs -- in a 7-0 loss to Minnesota on Tuesday. He said he worked with pitching coach Dave Eiland in a bullpen session this week trying to keep the ball down.
"I thought Shields threw the ball much better," Yost said. "He made a little minor adjustment in his mechanics and it paid off big for him today. I thought him going out and getting us through the seventh inning was huge. That meant that we could piece the eighth inning together and get to Holly, and Holly was his usual self."
Shields finished with three runs (two earned) on seven hits, three walks, five strikeouts and one hit batter in seven innings. Tim Collins and Aaron Crow split a scoreless eighth inning before handing it over to Holland, who pitched a perfect ninth inning to secure his 32nd save. He also moved into second place in franchise history with 25 consecutive saves, sitting behind Joakim Soria's 36.
"It's a huge series for us to come in and be able to win three out of four against Boston like that," Yost said. "The best team with the best record came in here, and we beat them three out of four. We're playing great baseball right now, we just have to maintain our focus on that."
Kathleen Gier is an associate reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.