The Astros' first run came on a Jason Castro homer off Tigers starter Doug Fister.
Peralta moved up to second in the order once Brennan Boesch was scratched from the lineup with neck spasms. After grounding out in his first at-bat, he came back up in the third against Houston lefty Wandy Rodriguez and went after a 2-0 pitch, sending an opposite-field shot over the right-field fence for his third homer and ninth RBI of the spring.
Miguel Cabrera's ensuing walk set him up to score on Alex Avila's two-out single, providing a big insurance run.
Peralta completed his damage with a ground-rule double in the sixth, driving in Austin Jackson.
That was plenty of run support for Fister, whose return to the rotation from a sore middle finger on his right hand went smoothly to put him on track for his regular-season debut next Saturday. Fister allowed the one home run among four hits over six innings, escaping a bases-loaded jam in the fifth with a Brian Bogusevic fly out on a 3-0 pitch.
Landon Powell singled in the second Astros run with two outs in the ninth inning.
Up next: The Astros will fly to Corpus Christi, Texas, on Monday for a game against their Double-A affiliate, the Corpus Christi Hooks, at 6:05 p.m. CT. Manager Brad Mills said his starting position players will play about two or three innings. Right-hander Lucas Harrell, who's thrust himself into the competition for a spot in the rotation, will get the start and could throw as many as six innings.