The Red Sox were on a hitting tear until Roy Halladay came to town.
Halladay stopped Boston's potent offense and spoiled Paul Byrd's debut with the Red Sox, pitching his major league-leading eighth complete game in the Toronto Blue Jays' 4-1 victory Saturday night.
The loss snapped Boston's four-game winning streak and came after the Red Sox scored 37 runs in a three-game sweep of Texas.
"You can't get caught up on how a team's going good or bad," Halladay said after pitching his 39th career complete game. "Sure they were swinging the bats good against Texas. I look at quality pitches. I try to avoid who's hot and who's not."
Indeed, Halladay seemed unaffected by Boston's big numbers in its previous three games. The Red Sox had a 10-run inning and a nine-run frame against the Rangers.
"I don't think he's too worried about who's at the plate," Blue Jays center fielder Vernon Wells said. "He can pause a game plan and work against hitters. He pumps strikes and makes it easier for guys behind him. It's impressive to watch."
Alex Rios hit a two-run homer and Adam Lind had a solo shot for the Blue Jays, who moved eight games behind Boston for the AL wild-card spot.
Halladay (14-9) improved to 10-4 in his last 16 starts, limiting the Red Sox to six singles before Dustin Pedroia's homer leading off the ninth. He walked one and struck out four in the seven-hitter, holding an opponent to one earned run or less for the 13th time in 32 starts this season.
"He should make a pitching video. He's pretty tough," Pedroia said. "He throws strikes. He's got great stuff and it's tough to get into a rhythm on him because he's creating his own rhythm for himself. We didn't get anything going."
ANGELS 4, INDIANS 3: At Cleveland, John Lackey earned his fourth straight win, Francisco Rodriguez tied his team record of 47 saves and the Los Angeles Angels took advantage of four Cleveland errors to defeat the Indians. Lackey (10-2) pitched six innings to remain unbeaten in his last six starts. The Angels added to baseball's best record and avoided their first three-game losing streak since June.
Rodriguez yielded a single to Jhonny Peralta to open the ninth, then got three quick outs two on strikeouts to match his saves mark set in 2006. He narrowly escaped a second straight blown save when Ryan Garko lined a 2-2 pitch inches foul with pinch-runner Franklin Gutierrez on second and two outs before fanning on a 3-2 offering in the dirt.
Garret Anderson extended his hitting streak to 20 games with two singles to help Los Angeles improve to 19-7 since the All-Star break.
Fausto Carmona (5-5) allowed four runs two earned and six hits in seven innings. He didn't strike out a batter for the second time in 54 career starts.
YANKEES 3, ROYALS 2 (13 INNINGS): At New York, Brett Gardner singled through the left side of the infield with two outs in the 13th inning, driving in Robinson Cano and giving the Yankees a much-needed victory over Kansas City. The Yankees won for just the second time in eight games. They began the day 10 1/2 games behind the Tampa Bay Rays in the AL East and seven back of the Boston Red Sox for the wild card.
Cano singled with one out in the 13th off Jeff Fulchino (0-1), just the third hit allowed by Royals relievers. Ivan Rodriguez moved up Cano with a groundout and Gardner slapped a single past third baseman Alex Gordon. The throw from left fielder David DeJesus to the plate was wide.
New York relievers allowed just one hit after Sidney Ponson left in the seventh inning, and David Robertson got some help from Rodriguez behind the plate to escape a jam in the 13th.
David Robertson (3-0) walked Mark Teahen leading off the inning, but retired Jose Guillen on a fly ball and struck out Gordon. Teahen took off for second moments later, but Rodriguez threw a strike that beat him to the bag by about three feet.
WHITE SOX 2, ATHLETICS 1: At Oakland, Calif., John Danks pitched six effective innings to win his fifth straight decision on the road, and Chicago edged Oakland. Juan Uribe had two hits and an RBI for the White Sox, who remained tied with Minnesota for the AL Central lead. Toby Hall also drove in a run.
Emil Brown drove in a run for the A's, who have not won consecutive games since July 10-11.
Danks (10-5) extended his dominance of the A's, allowing one run and six hits. He walked five and struck out five.
Greg Smith (5-12) turned in a decent effort, giving up two runs and eight hits in five innings. But he fell to 0-6 in his last eight starts.
TWINS 7, MARINERS 6: At Minneapolis, Joe Mauer homered and scored three times, sliding home in the ninth inning on Brian Buscher's sacrifice fly to lead Minnesota over Seattle.
The win kept the Twins tied with Chicago for the AL Central lead.
Ichiro Suzuki's two-run single capped a six-run rally in the sixth that put the Mariners ahead 6-5. Jason Kubel's pinch-hit single off Cesar Jimenez (0-2) tied it in the eighth.
Twins reliever Craig Breslow worked 2 1-3 scoreless innings, and Dennys Reyes (3-0) pitched a perfect ninth.
TIGERS 5, ORIOLES 3: At Detroit, Miguel Cabrera and Carlos Guillen hit home runs in the fourth inning and Justin Verlander got his first victory in almost a month to lift the Tigers over Baltimore. Gary Sheffield drove in two runs for Detroit, which won for only the fifth time in 16 games. Baltimore had its three-game winning streak snapped.
Verlander (9-13) allowed two unearned runs and four hits in six innings, walking three and striking out six. Fernando Rodney pitched the ninth for his fourth save in eight chances.
Orioles' starter Dennis Sarfate (4-3) lasted 4 2-3 innings, giving up four runs and six hits. He has yet to last a full five innings in any of his four starts since joining the rotation. He's allowed 18 earned runs in 15 2-3 innings during that stretch.
RANGERS 3, RAYS 0: At Arlington, Texas, Matt Harrison pitched eight sharp innings and Ian Kinsler homered on the first pitch, sending the Rangers past Tampa Bay. Harrison (5-2) dominated the AL East-leading Rays in his eighth career start. The rookie lefty allowed only three singles, struck out eight without a walk, and retired the final 18 batters.
Harrison, who entered the game with a 7.07 ERA, was pulled after 109 pitches. His performance was a boost for a Texas staff that had given up 69 runs in its last seven games.
The Rays had won three in row. Texas stopped its four-game losing streak.
MARLINS 2, CUBS 1: At Miami, Hanley Ramirez hit a leadoff homer and Cody Ross singled in the go-ahead run to help Florida snap Chicago's nine-game road winning streak. Anibal Sanchez (2-2) pitched 5 1/3 innings for the Marlins. Kevin Gregg, who allowed a game-winning home run Friday night, pitched a scoreless ninth for his 27th save in 33 chances.
Henry Blanco homered for the NL Central leaders, who had won five straight overall and hadn't lost a road game since July 22 at Arizona.
Chicago's Sean Marshall (2-3) gave up two runs and four hits with eight strikeouts in five innings in his first start since July 6.
METS 7, PIRATES 4: At Pittsburgh, Pedro Martinez pitched seven innings for the first time this season, and Jose Reyes and Ramon Castro homered to lead surging New York past Pittsburgh. Reyes and Castro each had two hits and two RBIs for the NL East leaders, who have won five straight and nine of 12. New York is a season-best 11 games over .500.
Pedro Feliciano earned his second save, retiring the final two hitters with two runners on after Pittsburgh scored three times in the ninth against rookie Eddie Kunz.
Before the game, New York got disappointing news regarding its shaky bullpen when injured closer Billy Wagner felt discomfort in his pitching elbow following a simulated game.
The All-Star reliever, sidelined with a strained left forearm, won't come off the disabled list as expected Monday and instead will return to New York on Sunday for further evaluation.
Martinez (4-3) allowed one run and eight hits in his 13th start of the season. The oft-injured right-hander won for the first time since July 7.
Reyes led off the game with a home run against Zach Duke (4-11) and added an RBI triple in the second.
DIAMONDBACKS 11, ASTROS 5: At Houston, Miguel Montero and Chris Young hit grand slams the first time Arizona has hit two in one game and the Diamondbacks beat Houston. Montero and Young hit the first slams of their careers. Montero also had a solo homer and a double, driving in a career-high five RBIs, as the Diamondbacks won for the fifth time in six games.
Yusmeiro Petit (2-3) allowed four hits and two runs in seven innings for the win.
Backe (7-12) gave up 11 earned runs for the second time in three outings. He also allowed 11 in 3 1-3 innings against the Cubs in Chicago on Aug. 6.
Ty Wigginton hit an RBI triple and two doubles for the Astros, who have lost eight of the last nine meetings with Arizona.
CARDINALS 9, REDS 3: At Cincinnati, Albert Pujols hit a pair of solo home runs, and St. Louis matched its season high with four homers in all during a victory over Cincinnati that extended its winning streak to four games. Skip Schumaker had a three-run shot and Ryan Ludwick added a two-run homer for the Cardinals off struggling Aaron Harang (3-13), hit hard in both starts since coming off the disabled list. Ryan Ludwick had a two-run homer, and Pujols hit the first of his two off Harang as well.
The Cardinals have won six of eight overall, staying right behind Milwaukee in the NL wild-card race.
Joel Pineiro (6-5) improved to 3-0 in August and remained unbeaten in his career against the Reds. Pinch-hitter Andy Phillips and Brandon Phillips hit solo homers off Pineiro, who went six innings.
Cincinnati has lost 17 of 21. The Reds have dropped their last eight at Great American Ball Park, their worst such slump since it opened in 2003. They haven't been this bad at home since 2001, when they dropped nine in a row at Cinergy Field.
BRAVES 11, GIANTS 5: At Atlanta, Mike Hampton gave up two runs in six innings and Atlanta beat San Francisco to end a five-game losing streak. Hampton gave the Braves' rotation a lift on the day 300-game winner Tom Glavine confirmed he'll miss the rest of the season with an elbow injury. John Smoltz and Tim Hudson have already had season-ending operations.
Hampton (2-1) earned the second win of his comeback after missing the past two seasons with elbow trouble and having his 2008 debut pushed back almost four months by other injuries. He allowed seven hits with two walks and four strikeouts.
Jeff Francoeur had his first four-hit game of the season and drove in two runs. Greg Norton hit a two-run homer and Omar Infante also drove in two runs.
The Giants lost for the fifth time in six games. They have allowed 39 runs in the five losses.
Matt Palmer gave up seven hits and six runs in 2 1-3 innings in his major league debut. Palmer (0-1) started for Jonathan Sanchez, placed on the disabled list because of a strained left shoulder.
ROCKIES 13, NATIONALS 6: At Washington, Troy Tulowitzki drove in three runs and Colorado scored six times in the fifth inning to extend Washington's losing streak to nine games. Garrett Atkins, Brad Hawpe and Ian Stewart had two RBIs each for the Rockies, who broke open a 5-2 game in the fifth. The first eight hitters reached base safely, Colorado drew four walks and starter Livan Hernandez (1-1) helped himself with a run-scoring double.
Washington's nine straight defeats matches the team's longest slide since it arrived from Montreal before the 2005 season. It's the Nationals' third nine-game skid this season.
Ronnie Belliard drove in three runs for Washington. John Lannan (6-12) went four-plus innings, allowing seven hits and a season-worst eight runs.
PADRES 8, PHILLIES 3: At San Diego, Chad Reineke pitched five innings and got his first hit and RBI to win his major league debut for the Padres. Brian Giles drove in four runs for the first time this season to help Reineke survive a shaky first inning.
BREWERS 4, DODGERS 3 (10 INNINGS): At Los Angeles, J.J. Hardy's single scored Ray Durham with the go-ahead run in the 10th for Milwaukee. Hardy wound up with three hits, including a two-run homer, and three RBIs.