SAN FRANCISCO -- Willie Bloomquist hit a go-ahead two-run triple after Ryan Roberts' solo homer tied it in the eighth, and the NL West-leading Arizona Diamondbacks extended their division cushion to a season-best seven games with a 4-1 win over the San Francisco Giants on Sunday.
The D-backs finally delivered for Daniel Hudson (15-9) when they got to All-Star Ryan Vogelsong in the eighth. Until then, Cody Ross' first-inning home run had held up. Hudson won his third straight start, helping Arizona (80-60) leave the Bay Area for Colorado in a comfortable spot with 22 games to go.
The defending World Series champion Giants considered this a must-win series to keep their faint playoff hopes alive but lost the final two.
San Francisco failed to win a seventh straight home series at sold-out AT&T Park since taking two of three from Milwaukee on July 22-24.
Roberts drove a 2-0 pitch from Vogelsong (10-6) into the left-field bleachers to start the eighth-inning rally. After Gerardo Parra followed with an infield single, Vogelsong's day was done. Jeremy Affeldt was called upon to face pinch hitter Geoff Blum, while Vogelsong walked off to a standing ovation and tipped his cap.
After Affeldt walked Blum on six pitches, manager Bruce Bochy replaced him with Ramon Ramirez. Bochy vowed to pull out all the stops and treat this one like an elimination game.
Aaron Hill added an RBI single in the eighth to give Arizona an insurance run. D-backs skipper Kirk Gibson went with the same eight players in the same order after Saturday's victory ahead of Hudson in the ninth hole.
Gibson's gritty bunch has seized control of its fate with a fabulous stretch.
Now, the pressure is on San Francisco to make another spectacular September run, a last-ditch push with time quickly running out -- and hope for some help from other teams against the red-hot Diamondbacks.
Arizona lost Friday night's series opener 6-2 to end a nine-game winning streak, then bounced back with a commanding 7-2 win against Tim Lincecum on Saturday night behind another impressive outing from 18-game winner Ian Kennedy.
"There's no comfort here in where we're at, trust me," Gibson said.
The D-backs played much of Sunday without slugger Justin Upton, who was ejected in the fourth inning for arguing a called third strike.
Upton jumped into the air after being called out on strikes against Vogelsong for the first out of the fourth with Hill aboard on a leadoff single. Upton jawed with plate umpire Brian Knight and was tossed. An infuriated Upton had to be held back by Gibson and then first base coach Eric Young.
It's the first career ejection for Upton, who drew a first-inning walk.
Vogelsong, the journeyman and unlikely All-Star who toiled in the minors and Japan, lost his fourth straight start despite an impressive day.
The Giants again missed chances with runners in scoring position -- their downfall this season -- and haven't won in their last six series since taking two of three at Florida from Aug. 12-14.
Hill singled to left leading off the fourth for Arizona's first hit against Vogelsong, who then retired the next seven D-backs hitters in order before Bloomquist's two-out single in the sixth.
Bloomquist then came through with his second triple of the year as Arizona showed yet again it doesn't plan to give in one bit down the stretch. Miguel Montero singled in the seventh to extend his career-high hitting streak to 13 games.
After being swept with three one-run defeats from May 10-12 at AT&T Park, the Diamondbacks took two of three in the waterfront ballpark Aug. 1-3 -- beating Matt Cain and Lincecum in the first two before dropping the series finale to Vogelsong 8-1 -- and again this weekend.
Carlos Beltran came in with eight straight plate appearances reaching base -- which tied his career high -- but flied out to center in the first. He hit his fourth triple since joining the Giants in a July 28 trade from the New York Mets.
Rookie Brandon Belt struck out swinging on a 16-pitch at-bat to start the second against Hudson. He fouled off 12 pitches, nine in a row. The plate appearance matched the longest of the season for San Francisco along with Andres Torres, who drew a seventh-inning walk on July 5 at home against the Padres.
Belt struck out looking on four pitches his next time up to end the fourth.
San Francisco reliever Sergio Romo flew to Phoenix to be with his wife, Chelsea, who gave birth to the couple's second son, Rex Ryder, at 5:47 a.m. Sunday. ... Injured Giants closer Brian Wilson, last season's majors saves leader who is sidelined with elbow inflammation, threw a light session of catch on flat ground under the close watch of manager Bruce Bochy and athletic trainer Dave Groeschner. If Wilson feels fine Monday he will throw a light bullpen in San Diego. ... LHP Madison Bumgarner (9-12) pitches Monday against the Padres at Petco Park, still looking for his first career win vs. San Diego after going 0-2 over his initial six starts. ... Rookie lefty Wade Miley, called up from Triple-A Reno on Aug. 16, makes his fourth start of the season for the D-backs in their series opener with the Rockies at Coors Field. ... The Giants recalled C Hector Sanchez from Class-A San Jose. ... San Francisco drew 42,222 to reach the 3 million attendance mark.