Detroit snapped a two-game skid and won for the 40th time this season thanks to a sudden comeback put together against Boston's Andrew Bailey (3-1).
Victor Martinez drew a leadoff walk in the ninth and Peralta promptly launched a 1-2 pitch over the wall in left to end the game.
Torii Hunter lifted Detroit into a 2-2 tie in the fifth with a two-run single, but Boston regained the lead in the eighth when David Ortiz singled in Dustin Pedroia. Ortiz also hit a solo homer in the fourth, his 15th of the season.
The ninth-inning rally gave the win to Drew Smyly (3-0), who allowed up one hit and struck out four over the final two innings.
Toddler uninjured after being knocked over by Obama family dog
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'