Nolasco (14-8) struck out nine, scattered five hits and allowed only one walk, improving to 9-2 in his last 11 starts for the Marlins, who snapped a five-game losing streak at PNC Park.
Nolasco's run-scoring single in the fifth broke a scoreless tie and ignited a four-run rally in which Gaby Sanchez collected a two-run single and Dan Uggla added a sacrifice fly.
Jose Veras tossed two scoreless frames and Clay Hensley completed the whitewash in the ninth for Florida.
Pirates starter Zack Duke (5-12) was saddled with the loss, surrendering five runs on nine hits over 5 2/3 innings.
Copyright 2010 United Press International, Inc. (UPI).