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 of the spring.
"That's what I want to do more than anything," Peralta said afterward. "I know if I'm hitting the ball to right field, that's a good sign. I'm staying on the ball. ...
"This is where I want to be. The last couple games, I feel really good going to right field. Hopefully I keep it into the season."
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: What was looking like one last audition for Drew Smyly to try to win the Tigers' open rotation spot is now a final tuneup before the season begins with him in the rotation. He'll face the Blue Jays on Monday in the front half of a spring-ending home-and-home series between Detroit and Toronto. Game time is 1:05 p.m. ET.