Cabrera was tossed while batting with the bases loaded in the third and manager Jim Leyland was ejected, too. Detroit still got plenty of additional chances against a Philadelphia team that stumbled to its eighth straight loss.
In the sixth, the Tigers scored eight runs on only two hits. The Phillies made three errors and walked three batters in the inning.
Rick Porcello (8-6) allowed three runs and seven hits in six innings to win his fourth straight start.
Reliever Jake Diekman (0-1) took the loss, but he was hardly the only culprit for Philadelphia.
The Phillies had already blown a 3-0 lead when Diekman came on to start the bottom of the sixth in a tie game. He allowed a leadoff walk to Andy Dirks, then threw wildly to second for an error when Alex Avila bunted. Ramon Santiago's bunt single loaded the bases, and after Austin Jackson's flyout to shallow right field, Don Kelly's flyball to left was dropped by rookie Steve Susdorf for another error. Kelly was credited with a sacrifice fly, the Tigers took a 4-3 lead and the bases remained loaded.
Luis Garcia replaced Diekman, and Matt Tuiasosopo - who had come in earlier for Cabrera - drew a walk to force in a run. Prince Fielder followed with a grounder to first, but Darin Ruf's throw home was off the mark for yet another error.
Victor Martinez's bases-loaded walk made it 7-3, and Peralta followed with his 10th homer of the year and fourth career grand slam.
All eight runs in the inning were unearned.
The Tigers have won seven of eight, and they lead the AL Central by three games over Cleveland. Detroit outscored Philadelphia 24-5 in the three-game sweep.
Cabrera's spot in the order came up three times with the bases loaded, but he was only around for one of them - and not for long. Down 1-0, the Tigers had the bases full with nobody out in the third. Kelly popped out on a 3-1 pitch, bringing Cabrera to the plate.
After two called strikes, the Triple Crown winner appeared to say something to plate umpire Chad Fairchild, although not in a demonstrative fashion. Cabrera was tossed, and manager Jim Leyland was thrown out too when he came out for what ended up being a lengthy argument.
Cabrera was charged with a strikeout when Philadelphia starter Jonathan Pettibone threw strike three to Tuiasosopo - since Tuiasosopo was facing a two-strike count when he replaced Cabrera.
Prince Fielder fouled out to end the inning.
Fielder came to the plate three times with the bases loaded, including during Detroit's three-run fifth. The Tigers started that inning with consecutive singles by Santiago, Jackson, Kelly and Tuiasosopo, scoring their first run on Tuiasosopo's hit. Fielder and Martinez followed with RBI groundouts to tie it at 3.
Pettibone allowed three runs and seven hits in five innings. He also walked four.
Detroit had at least two runners on base in seven of its eight innings at the plate. The Tigers finished the game 6 of 20 with runners in scoring position - and they had 12 plate appearances with the bases loaded.
Cabrera's spot came up with two on in the seventh. At that point, Hernan Perez was batting there, and he singled to drive in another run.