It was the 18th game-ending hit of his career.

Hideki Okajima (4-3) pitched a perfect ninth inning.

Phil Coke (6-2) took the loss after coming in with one on in the ninth.

The Red Sox trailed 2-0 on Miguel Cabrera's 26th homer in the first inning and fell behind 4-0 in the fourth.

At St. Petersburg, Florida, Robinson Cano's 21st home run of the season snapped a ninth-inning tie as New York beat Tampa Bay to retain first place in the American League East.

While Alex Rodriguez failed for the ninth consecutive game to hit his 600th career homer, Mark Teixeira and Nick Swisher went deep for the defending world champions, who rallied from an early deficit against Matt Garza before beating All-Star closer Rafael Soriano (2-1) on Cano's drive into the right field seats.

Rodriguez, 9 for 37 with eight RBIs since hitting career homer No. 599 on July 22, went 0 for 3 with a walk and one strikeout.

David Robertson (2-3) pitched a perfect inning for the win. Mariano Rivera worked the ninth for his 22nd save in 24 opportunities, ending Tampa Bay's seven-game winning streak.

At Minneapolis, Kevin Slowey pitched eight sparkling innings, Joe Mauer had three hits and the Twins won their seventh consecutive game.

Delmon Young added two hits and two RBIs, including a run-scoring triple in Minnesota's three-run first.

Felix Hernandez (7-8) pitched seven innings for the Mariners, yielding three runs and seven hits.

Seattle has lost six straight and its 6-22 record for July matched the franchise record for losses in a month, set by the 1977 expansion team in August.

Slowey (10-5) allowed three hits, tying a season low, and struck out five.

At Chicago, Dallas Braden pitched his third complete game of the season and Kevin Kouzmanoff homered to help Oakland end the White Sox's 12-game, home winning streak.

Braden (6-7), who beat the White Sox on July 25 in Oakland to end his five-game skid and win for the first time since pitching a perfect game May 9, held Chicago to two runs eight hits. He won consecutive starts for the first time since winning three straight from April 11-22.

Andruw Jones homered for the White Sox, who had won five straight overall. Chicago's previous loss at US Cellular Field came on June 27 against the Cubs.

The A's roughed up White Sox starter John Danks (11-8) with a four-run, second inning.

At Toronto, Shin-Soo Choo doubled home the go-ahead run in the seventh inning as Cleveland beat Toronto to snap a three-game losing streak.

Indians right-hander Jake Westbrook was scratched before the game and traded to St. Louis as part of a three-team deal, with Josh Tomlin taking his place. Tomlin was working on three days' rest and allowed only one run in 5 1-3 innings in his second major league start.

Jensen Lewis (3-2) worked one inning of relief for the win.

The loss snapped the Blue Jays' four-game winning streak.

At Kansas City, Missouri, Billy Butler hit a late two-run homer and Zack Greinke pitched eight strong innings as Kansas City rallied past Baltimore for the win.

After Jason Kendall singled in the eighth, Butler sent a drive over the Orioles bullpen in left field for his 12th homer. It came on a 2-2 pitch from David Hernandez (5-8).

Greinke (7-10) held the Orioles to three runs on seven hits. He struck out five and walked three. Greinke, the 2009 American League Cy Young Award winner, is 5-2 in his past seven starts.

At Anaheim, California, Vladimir Guerrero ended a 16-game home run drought with a two-run shot and Rich Harden pitched seven solid innings in his first start off the disabled list as the Texas Rangers pushed their lead in the American League West over Los Angeles back to nine games.

Harden (4-3) allowed a run and five hits, struck out three and walked two in his matchup against former Oakland A's teammate Dan Haren (0-2). The Rangers' right-hander had been sidelined since June 11, when he strained his left gluteal muscle.

Neftali Feliz got his 29th save in 31 attempts, finishing up a game that took 2 hours, 11 minutes.

The Angels' run came on a seventh-inning homer by Howie Kendric.