Webb (11-5) allowed five hits and walked two in his second straight win. He pitched seven effective innings in a 6-4 victory at Oakland last weekend.
''His changeup was very good,'' Pirates manager Derek Shelton said. ''He was able to execute it throughout the count, at any point.''
Camilo Doval got three outs for his 17th save. Greg Allen walked with one out, stole second and advanced to third on a groundout. But Rodolfo Castro lined to left for the final out.
LaMonte Wade Jr. hit a solo homer, helping San Francisco to its fifth win in seven games. Wade also doubled and scored on Joc Pederson's double in the first.
Wade is hitting .187 (14 for 75) in 30 games since leaving the injured list, but 5 for 13 (.385) in his last six games.
''My at-bats have been better,'' he said. ''I'm trying to keep working on it, one at-bat at a time. I think it's definitely going in my direction.''
Castro had two hits in Pittsburgh's fifth loss in six games. Tyler Beede (1-2), who broke into the majors with San Francisco in 2018, allowed two runs and three hits in three innings while serving as the opener for the Pirates.
Webb improved to 8-3 in 13 starts this year at Oracle Park. The Pirates loaded the bases in the eighth on Tucupita Marcano's double and walks to pinch-hitter Josh VanMeter and Bryan Reynolds, but Webb escaped the jam by striking out Ben Gamel.
Webb appreciated being left in the game by manager Gabe Kapler.
''After I walked Reynolds, Kap was like, `OK, let's go,''' Webb said.
Webb also helped himself with a nice defensive play in the third, scooping up Kevin Newman's soft grounder and lunging for first base for the out.
Wade led off the third with a drive to right-center for his sixth homer. It was Wade's fourth multihit game of the season.
Pirates: 3B Ke'Bryan Hayes was out of the lineup because of back spasms. Castro replaced him. Shelton reiterated that Hayes, 25, might receive occasional breaks to keep him playable overall. ''We'll try to get him as much relief as possible,'' Shelton said. ''Hopefully we can alleviate the discomfort.'' ... CF Reynolds is continuing to play regularly despite an oblique injury. The switch hitter started Saturday, one day after his streak of reaching base in 10 consecutive games ended.
Giants: Kapler said C Joey Bart, who is dealing with a sprained right ankle, could play if needed in an emergency. Bart is day to day. He ran on the field during batting practice Saturday.
The Pirates and Giants conclude their season series on Sunday at Oracle Park. Zach Thompson (3-9, 5.08 ERA) starts for Pittsburgh, and Alex Wood (8-9, 4.17 ERA) pitches for San Francisco. Wood is 3-4 with a 4.42 ERA in 10 starts at home, compared to 5-5 with a 3.94 ERA in 12 road outings.
Copyright 2022 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.