Ryan Howard hit a solo homer for the last-place Phillies, who have lost two in a row after winning four straight.
Lincecum (4-10) looked more like the pitcher who was a two-time Cy Young Award winner than the one who entered the game with a 5.93 ERA. He allowed two runs and five hits, striking out six.
Phillies starter Vance Worley (5-6) gave up six runs and six hits in six innings, striking out nine.
The Giants broke it open with five runs in the sixth.
Ryan Theriot led off with a single, Melky Cabrera singled and Buster Posey walked to load the bases. Pablo Sandoval's sacrifice fly made it 2-1. Nate Schierholtz walked to re-load the bases. Worley stayed in despite having already thrown 105 pitches. Crawford ripped the second pitch he saw out to right for his second career slam to put the Giants up 6-1.
Howard drove one out to almost straightaway center to get the Phillies within 6-2 in the bottom half. It was Howard's second homer in 25 at-bats since returning after missing the first 84 games.
Crawford's RBI single off Jeremy Horst in the eighth made it 7-2.
A balk by Lincecum forced in Shane Victorino to give the Phillies a 1-0 lead in the fourth. Victorino and Chase Utley hit consecutive hard singles to start the inning. After the balk, Lincecum worked out of a bases-loaded jam, retiring Placido Polanco on a bouncer to third.
The Giants tied it at 1 on Eli Whiteside's two-out RBI double to deep right in the fifth.
Lincecum has consecutive quality starts for just the second time this season. He got a no-decision in San Francisco's 3-2 extra-inning win over Houston last Saturday when he tossed eight scoreless innings.