Boston starter Josh Beckett (10-5) allowed all three runs over the first three innings, on a two-run homer by Alex Gordon and a sacrifice fly by Billy Butler, but settled after that, allowing seven hits while improving to 7-1 in his career against the Royals as the Red Sox won 4-3.
Dustin Pedroia drove in three runs with a pair of well-timed singles, and Jason Varitek drove in the other run for the Red Sox.
Luke Hochevar (8-10) worked through 114 pitches in six innings for the Royals. The former No. 1 overall draft pick allowed all four runs on eight hits and two walks.