The Tigers took three of four from New York, handing the Yankees just their second series loss of the season.
Verlander (4-2) won his third straight start, giving up four hits and four walks in 6 2-3 innings.
CC Sabathia (4-2) lost for just the third time in his last 13 road games, allowing six runs on nine hits in six innings.
Cabrera and Brennan Boesch gave the Tigers a 3-0 lead with back-to-back homers down the right-field line in the fourth. Cabrera added a two-run double in the sixth.
Left fielder Don Kelly preserved the shutout with an outstanding catch to end the eighth. The Yankees put two on against Joel Zumaya, but Kelly grabbed Randy Winn's long fly just before running into the wall.
Detroit took the lead in the second on Gerald Laird's check-swing, RBI single. It was his sixth hit in 13 career at-bats against Sabathia.
Cabrera and Boesch extended the lead. Jorge Posada gave the Yankees a scoring chance with a two-out double off Verlander in the sixth, but newly recalled Juan Miranda popped out to end the threat.
The Tigers then put the game away in the bottom half. Johnny Damon and Magglio Ordonez led off with singles and Cabrera doubled to hit a two-run double over deep center field. Laird made it 6-0 with a two-out, RBI double.
Zumaya replaced Verlander with two on and two out in the top of the seventh, and got Mark Teixeira to fly out.
Eddie Bonine closed the combiend four-hitter by pitching the ninth.
NOTES: Derek Jeter ended a 0-for-16 slump with an infield single to start the game. ... Several Tigers got Mohawk haircuts between games of Wednesday's day-night doubleheader, including most of the relief pitchers. Closer Jose Valverde was one of the few exceptions, despite originally telling the other relievers that he would go along. ... With Nick Swisher (biceps) on the bench, the Yankees called up Miranda from Triple-A Scranton Wilkes-Barre and optioned out infielder Kevin Russo.