TORONTO -- Detroit manager Jim Leyland said the offense didn't do enough. Starter Rick Porcello felt his pitching wasn't up to par.
Either way, the Tigers came up short against a team on the fringes of the playoff race, and no one was happy about it.
Carlos Villanueva won his fourth straight start, Travis Snider hit a two-run homer, and the Toronto Blue Jays beat the Tigers 8-3 on Friday night.
"We've got to do a better job of shutting the door on some of these teams that we're more than capable of doing," Porcello said, referring both to his own effort and Justin Verlander's loss at Cleveland on Thursday.
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.
"Carlos pitched a great game, everybody contributed," Vizquel said. "Mathis got the big shot that got everybody home and we got something going there. The rest was up to the bullpen, who did a great job."
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.
"We haven't swung the bats good the last few days," Leyland grumbled. "We didn't swing the bats good in Cleveland and we didn't swing the bats good again here tonight."
Cabrera's homer was his 25th, and raised his major league-leading RBI total to 83. For Fielder, the home run was his 16th.
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.
Porcello, who won a career-best four straight road games as a rookie in 2009, walked two and struck out one in his first road defeat since June 8 at Cincinnati.
Villanueva (6-0) saw both Cabrera and Fielder go deep over a three-pitch span in the first inning, but didn't give up another run. Unbeaten in five starts since joining Toronto's rotation after 22 relief appearances, the right-hander allowed four hits in five innings, walked two and struck out three.
"We felt like we had a shot at him, we just didn't do anything," Leyland said. "He shut us down pretty good the rest of the game."
Outfielder Quintin Berry credited Villanueva for mixing well after the shaky first.
"Everybody knows he's got many pitches he can throw and he was throwing them all," Berry said. "We were doing a good job of trying to wait him out but he's got good stuff."
Blue Jays manager John Farrell said Villanueva has done a good job of keeping the Blue Jays close in all of his outings as a starter, never allowing more than three runs.
"What he has shown repeatedly is that he is going to keep the game under control," Farrell said. "He sets the tone, he throws strikes and is capable of making the key pitch in tough situations."
Aaron Loup worked 1 1-3 innings, Brandon Lyon got two outs, Darren Oliver gave up Fielder's RBI single in the eighth and Casey Janssen finished.
Toronto cut Detroit's early lead in half with a run in the bottom of the first. Vizquel doubled, his first extra-base hit of the season, and scored on Edwin Encarnacion's single.