Updated

Oakland, CA (SportsNetwork.com) - James Shields tossed eight solid innings and Omar Infante went 3-for-5 with a two-run double, a run scored and a stolen base as the Kansas City Royals held on to beat the Oakland Athletics, 4-2, in the rubber match of a three-game set.

Shields (10-6), who rebounded from losing three of his last four decisions coming into the game, held a perfect game through five innings and finished the day with only two runs allowed on just four hits and no walks.

"Let's just get (Shields) a couple runs and he'll take it from there," Kansas City manager Ned Yost said.

Nori Aoki and Salvador Perez each had RBI singles for the Royals, who have won four out of their last five games.

Scott Kazmir (12-4) was solid until he unraveled in the fifth, allowing all four of his runs and five of his 10 hits in the frame.

"I felt good," Kazmir said. "I had good tempo, but that fifth inning, they just got a couple hits in a row and I wasn't able to keep them at bay."

Josh Reddick's pair of solo home runs accounted for Oakland's two runs. The A's have now dropped three of their last four.

Christian Colon opened the fifth with a double that was followed by a walk to Alcides Escobar. Aoki hit a grounder into left that scored Colon before Infante stepped to the plate and sent Escobar and Aoki home with a double. Infante stole third, then crossed the plate on a Perez's line-drive single to left for a 4-0 lead.

Reddick hit his first homer of the day leading off the bottom of the sixth to cut the lead to 4-1 and end Shields' perfect-game bid.

The Royals threatened again in the eighth, but couldn't get anyone across. Alex Gordon and Lorenzo Cain hit back-to-back singles, putting runners on first and second with one out. Colon then grounded into a fielder's choice before Jarrod Dyson struck out looking to end the inning.

The A's got their second run when Reddick sent the first pitch he saw in the eighth over the wall in right field.

Shields allowed Jed Lowrie to single after Reddick's homer in the eighth, but was able to get Alberto Callaspo to ground out to end the inning.

Greg Holland took over on the mound in the ninth and pitched a perfect inning for his 31st save of the season.

Game Notes

Shields has achieved double-digit victories in each of his last eight seasons ... The Royals outhit the Athletics, 14-4 ... The Athletics failed to put a runner in scoring position, while the Royals were 3-for-7 in those situations ... Infante now has 51 RBI and five stolen bases on the season ... The Royals are now 10-3 in series-deciding contests this season.