TORONTO — Carlos Villanueva won his fourth straight start, Travis Snider hit a two-run home run and the Toronto Blue Jays beat the Detroit Tigers 8-3 Friday. Jeff Mathis drove in three runs with a bases-loaded double and Omar Vizquel had two hits as Toronto won for the fifth time in seven games. Miguel Cabrera and Prince Fielder hit back-to-back homers for Detroit in the first inning but the Tigers lost for the third time in four games. Cabrera's homer was his 25th, and raised his major league-leading RBI total to 83. Detroit has won nine of 14 since the All-Star break but is just 3-4 away from home in that time. Rick Porcello (7-6) failed to extend his road winning streak to four games, allowing five runs and six hits in six innings. Villanueva (6-0) yielded homers to Cabrera and Fielder during a three-pitch span, but didn't give up any other runs. Unbeaten in five starts after 22 relief appearances, the right-hander allowed four hits in five innings, walked two and struck out three. Twins 11, Indians 0: Scott Diamond tossed a three-hitter, Justin Morneau and Josh Willingham hit three-run homers, and Minnesota routed Cleveland. Joe Mauer had three hits to raise his batting average to .332 and help the Twins bounce back after getting swept by the Chicago White Sox. Travis Hafner had two hits for the Indians, who lost for the second time in six games. Diamond (9-4) was perfect through 4 2-3 innings before Hafner and Jose Lopez singled. The lefty allowed just one baserunner the rest of the way, striking out six and notching his first career shutout. He needed just 98 pitches to go the distance. Cleveland has been shut out five times this season, all since June 9. Josh Tomlin (5-8) allowed a career-worst eight runs in four innings and lost for the fifth time in seven decisions. Jeremy Accardo didn't fare much better as the Twins added three more in the sixth and finished with 15 hits. Athletics 14, Orioles 9: Jemile Weeks hit an RBI single to give Oakland the lead during a six-run ninth inning against All-Star closer Jim Johnson, and the Athletics beat Baltimore in a back-and-forth duel that featured 31 hits and lasted four hours. The Athletics led 5-0 in the second inning and 8-6 in the eighth, yet fell behind on each occasion before rallying. After Baltimore scored three runs in the eighth to go up 9-8, Oakland pounded Johnson (1-1) for six runs on six hits and a walk in the ninth. The Orioles fell to 41-1 when leading after eight innings. Chris Carter and Brandon Hicks homered for the A's and Seth Smith tied a career high with five RBIs. Jerry Blevins (4-0) was given credit for the win by the official scorer because Oakland closer Ryan Cook was ineffective in the eighth. Adam Jones and Chris Davis homered and J.J. Hardy had three RBIs for the Orioles, who have lost four of five. Baltimore overcame a 5-0 deficit to take a 6-5 lead in the fifth, then fell behind 8-6 before moving in front in the eighth against an Oakland bullpen that was 7-0 with a 1.96 ERA since the All-Star break. White Sox 9, Rangers 5: Alejandro de Aza hit a two-run single before leaving the game after an outfield collision, and the Chicago White Sox beat Texas in a series opener between American League division leaders. Mariners 6, Royals 1: John Jaso drove in four runs and Blake Beavan pitched into the seventh inning to lead the Seattle Mariners to a 6-1 victory over the Kansas City Royals. Angels 3, Rays 1: Albert Pujols had three hits, including a two-run double, and Dan Haren won his second straight start since coming off the disabled list as the Los Angeles Angels beat Tampa Bay 3-1 to snap a six-game losing streak against the Rays. Yankees 10, Red Sox 3: Curtis Granderson and Yankees fans gave Ichiro Suzuki a grand welcome to the Bronx. — Agencies