The Red Sox were patient against Peavy, making him throw a lot of pitches and collecting nine hits off the ace in five innings.
"He's obviously, if not the best, one of the best in the game, and we did make him work hard," Red Sox manager Terry Francona said. "And fortunately for us, one of the other best is on our team, and he was great."
The Beckett-Peavy matchup was just the third in history in which two opposing starters each had nine or more wins against one or fewer losses. The previous one was when Toronto's Roger Clemens (11-1) faced Atlanta's Denny Neagle (9-1) on June 16, 1997.
Throwing an electric fastball while mixing in a curveball and an effective changeup, Beckett held San Diego to two runs and six hits in eight innings while striking out eight and walking one. He improved to 5-1 against the Padres, with the previous decisions coming while he was with Florida. The Red Sox ended Peavy's streak of six straight wins.
Beckett (11-1) kept the Padres scoreless until he gave up a two-run double in the fifth to Terrmel Sledge, who was pinch-hitting for Peavy (9-2). Sledge advanced to third on Jose Cruz Jr.'s groundout, but was stranded when Beckett retired Michael Barrett and struck out Adrian Gonzalez with a full-count curveball.
The top three batters in the Padres' order, Cruz, Barrett and Gonzalez, went 0-for-12 against Beckett with six strikeouts.
"He did well -- won the game, got through the eighth. Good performance in my book," Peavy said.
Jason Varitek tripled and homered for the AL East leaders, who have baseball's best record. The Red Sox took two of three from the Padres, who yielded the NL West lead to Arizona.
"Anytime you go against Jake Peavy it's going to be a tough day," Beckett said. "We got big hits with guys in scoring position. The guys picked me up. To score three runs off that guy, I didn't expect to get that much on a day like that."
Peavy lasted five innings, his shortest outing this season, and saw his ERA rise from 1.98 to 2.14, dropping him from first in the NL to third. He gave up three runs and nine hits, struck out only three -- matching his season low -- and walked one. Peavy came in leading the NL with 110 punchouts.
He also got dirty from falling down while making a putout at first and diving to try to make a play at third.
The Red Sox scored three runs on five hits in the third, when Peavy threw 38 pitches.
"I feel like I made some quality pitches and just didn't have anything to show for it," Peavy said. "I don't feel like I got hit all over the ballpark, by any means. I felt good about myself and everything I did out there, except I lost."
Jonathan Papelbon pitched a perfect ninth for his 18th save in 19 chances.
Peavy retired Beckett leading off the inning, then allowed three straight singles. One pitch after fouling off a 99 mph fastball, David Ortiz singled to right on a 1-2 slider to bring in Coco Crisp. Manny Ramirez followed with a sacrifice fly to right. After J.D. Drew beat out an infield single, Mike Lowell had a base hit to right to score Ortiz.
Every Red Sox regular except Julio Lugo had a hit off Peavy. Beckett singled off Peavy in the fourth.
Peavy and the Padres had a Keystone Kops second inning.
The pitcher fell down covering first on J.D. Drew's grounder, but made the putout.
With two outs, Varitek ended up with a triple when his fly ball to shallow left fell between shortstop Khalil Greene and left fielder Russell Branyan, who collided. Peavy tried to cover third, sliding headfirst into the bag, but couldn't hang onto the throw. Manager Bud Black and a trainer came out to check on Peavy's hand, and he stayed in the game.
"You talk about position players playing hard and getting dirty," Black said. "Well, the dirtiest player on the field today was our starting pitcher."
Varitek homered off Scott Linebrink leading off the eighth, setting off a scramble for the ball in the sand play area beyond the right-center fence. It was his eighth.
- The Red Sox finished interleague play 12-6, the third-best mark in baseball, and the Padres were 6-9.
- With RHP Curt Schilling on the DL, LHP Kason Gabbard will be called up to start for the Red Sox on Tuesday at Seattle. Gabbard is 7-2 with a 3.24 ERA in 14 starts with Triple-A Pawtucket. He beat Atlanta 6-3 in a spot start on May 20 in Boston.
- Peavy had a pedestrian June -- for him, anyway -- going 2-1 with a 3.61 ERA in five starts.