NEW YORK - Melky Cabrera's RBI single put the Yankees in front during a three-run eighth inning and New York hung on to beat the Chicago White Sox 6-5 on Friday, snapping Jose Contreras' 17-game unbeaten streak.
Kyle Farnsworth (3-4) pitched a perfect eighth and Mariano Rivera worked the ninth for his 20th save.
Rivera allowed two runs before he got pinch hitter A.J. Pierzynski to fly out to right with a runner on third to end it.
Contreras (9-1) allowed Alex Rodriguez's leadoff single in the eighth before he was relieved by Matt Thornton, who allowed a single to Jorge Posada and walked Bernie Williams to load the bases.
Brandon McCarthy came in and struck out pinch hitter Andy Phillips before White Sox manager Ozzie Guillen replaced him with Neal Cotts. Cabrera then hit an 0-1 pitch from Cotts up the middle to give New York a 4-3 lead.
Miguel Cairo added a sacrifice fly, and Johnny Damon also had an RBI double in the inning for the Yankees, who got a solid outing from Randy Johnson in their first game after the All-Star break. New York has won five of six.
Contreras allowed seven hits, walked three and struck out three. His franchise-record unbeaten streak tied two others for the second-longest in the major leagues over the past 40 years.
RANGERS 2, ORIOLES 1
In Baltimore, Kevin Millwood and three relievers combined on a six-hitter as Texas capitalized on one shaky inning by Kris Benson to slip past Baltimore.
After scoring 15 runs one night earlier, the Rangers got their only runs on fourth-inning sacrifice flies by Michael Young and Mark Teixeira. That, however, was enough to provide Texas with its third consecutive victory.
Baltimore got its lone run on a sacrifice fly by Melvin Mora.
Millwood (9-5) allowed one run and four hits in six innings to earn his first win in four starts since June 16. The right-hander struck out three and walked two.
Former Oriole Rick Bauer worked a perfect seventh, Francisco Cordero gave up two singles in the eighth and Akinori Otsuka closed it for his 18th save.
The Rangers have allowed four runs or fewer in seven consecutive games, the longest current run in the majors. They are 5-2 in that span.
Benson (9-8) gave up four hits in his second complete game of the season. He has lost three starts in a row.
MARINERS 5, BLUE JAYS 3
In Toronto, Gil Meche won his fifth consecutive decision and Adrian Beltre drove in two runs to lead Seattle over Toronto.
Meche (9-4) beat the Detroit Tigers on Sunday - the last game before the All-Star break - and Toronto on Friday night - the first game after it.
The only other Mariner to ever make consecutive starts was Freddy Garcia, who started on Sept. 10, 2001, and then on Sept 18, after baseball's break because of the 9/11 attacks.
Meche allowed three runs and six hits, while striking out five and walking one in six innings.
J.J. Putz pitched the ninth for his for his 17th save in 19 chances.