Porcello (7-6), who hadn't pitched in 11 days, overcame some early shakiness to record the victory, scattering four hits. The right-hander overcame three walks and struck out one.
The Tigers broke a scoreless tie with three unearned runs in the fourth, triggered when third baseman Conor Gillaspie couldn't handle Matt Tuiasasopo's lead-off grounder.
Peralta later added a solo homer and Perez finished 2-for-3 with two RBI for American League Central-leading Detroit, which won a third straight.
Santiago (3-6) ended up yielding six runs (three earned) on five hits over six full frames.
Paul Konerko drove both Chisox runs.