It was the third win in the four-game series for the Pirates, giving Pittsburgh its first series win in Philadelphia since April 2003. The Pirates have won 12 of their last 16.
Sanchez connected for his third home run of the season in the sixth inning for the first Pittsburgh run and singled in another run in the seven and capped the scoring with a sacrifice fly in the eighth.
Justin Wilson (2-0) pitched two no-hit innings in getting the win and Tony Watson, despite giving up a run in the eighth, lasted two innings and earned his first major league save.
Philadelphia led 1-0 after Domonic Brown's RBI double in the fourth but Sanchez tied the score in the sixth.
The Phillies were up 3-1 after Ryan Howard singled in a run and Brown had a sacrifice fly in the sixth only to have Pittsburgh answer with a two-run rally in the seventh that included an RBI single by Sanchez.
The Pirates added three runs in the eighth when Garrett Jones had a two-run double ahead of the Sanchez sacrifice fly. All three runs were charged to Phillies reliever Phillippe Aumont (1-3).