Porcello (4-2) took a no-hitter into the sixth inning before yielding a lead-off double to Ronny Cedeno. The Tigers' right-hander won for the fourth time in five starts while yielding two walks and striking out three.
Jose Valverde completed the shutout with a scoreless ninth, racking up his 11th save as the Tigers avoided a three-game sweep and broke a five-game losing skid.
Casper Wells knocked in a run with a second-inning single and Jhonny Peralta added solo homer in the fourth to provide Detroit's offense.
Pittsburgh's Paul Maholm (1-7) absorbed the defeat, surrendering a pair of runs on six hits over 5 1/3 innings.