SAN FRANCISCO -- Warming up in the bullpen, Barry Zito could hardly see when triple amputee Marine Cpl. Nick Kimmel hopped out of his wheelchair on a new pair of prosthetic legs to throw out the ceremonial first pitch with his right arm and lone remaining good limb.
Matt Cain provided the highlights of that emotional pregame Memorial Day moment for his fellow San Francisco starter, who has aided the young veteran with emotional and financial support through his Strikeouts for Troops foundation.
Zito then took the mound himself and outpitched Trevor Cahill in a matchup of former Oakland Athletics All-Stars, and Brandon Belt helped back his day with an RBI triple in the Giants' 4-2 win against the Arizona Diamondbacks on Monday.
"It was kind of unfortunate I couldn't be a part of it. I couldn't really look down there and see what was going on," Zito said of watching Kimmel, who came to spring training this year with other Marines. "I talked to Cainer and he said he got up on his legs. That was pretty awesome to hear because I've been watching his progress and getting the videos on the cell phone."
Gregor Blanco doubled twice and drove in a run for his second two-double game in four days and made a pretty game-ending catch on the warning track in right with two runners aboard. Blanco also scored on a double-steal to get things started in San Francisco's three-run first.
Majors hits leader Melky Cabrera followed up his four-hit day in Sunday's 3-2 win at Miami with a 1-for-3 outing to push his total to 74 hits -- on an afternoon when home run king Barry Bonds was among the sellout crowd of 42,295 and stopped by the clubhouse for a visit before the game.
Cabrera singled in the sixth to give him 47 hits for May, tying him with Hall of Famer Orlando Cepeda for third-most hits in a month in San Francisco history. If he gets to 49, he would match Hall of Famer Willie Mays for second most.
Zito (4-2) allowed two runs on seven hits in seven innings to win for the third time in four starts, bouncing back from an 8-5 loss at Milwaukee in which he was tagged for eight runs and five hits in three innings.
Cahill (2-5), traded to the defending division champion D-backs in December by the rebuilding A's, extended his winless stretch to five starts -- and is 0-3 during that span since winning at Washington on May 1. The right-hander struck out five and walked two, while allowing four runs and eight hits in six innings.
Clay Hensley struck out two in the eighth and Santiago Casilla finished for his 13th save in 14 chances after surrendering a pair of singles. The Giants held on while starting a stretch with 13 of 16 games at home.
Cahill singled in the third for his second career hit and first since 2009 in his rookie season in Oakland. He snapped an 0-for-26 stretch.
Pinch-hitter John McDonald hit a solo home run in the eighth for Arizona as the last batter against Zito, who made his way from the mound to the dugout to a warm ovation for the second straight home start.
It was McDonald's first career pinch-hit homer.
Justin Upton hit an RBI double for the Diamondbacks, but they missed other key opportunities, including stranding runners on second and third in the third inning. Arizona was looking to build some momentum after it took two of three from Milwaukee at home to end a string of six straight series losses at Chase Field.
"There were too many mistakes to make up today," manager Kirk Gibson said. "It was my fault for not having them ready. We had opportunities. We hit the ball on the button but right at people. If we play better that should not make a difference."
Zito will continue to monitor the progress of Kimmel, who served in Afghanistan and was injured by a roadside bomb.
"The fact that he came up and did this was huge," Zito said. "I'm just so happy for him."
Everybody considered it a fitting day for Zito to pitch considering all of his assistance to service members and their families and injured military members.
"Barry played a major role in that," manager Bruce Bochy said of Kimmel.
Also Monday, the USS Nimitz air craft carrier could be seen beyond the right-field facade.
Injured Giants 3B Pablo Sandoval, working back from a broken hamate bone in his left hand that required surgery, was examined by team orthopedist Dr. Ken Akizuki and all went well. He could be back playing for the Giants in a couple of weeks following a rehab assignment in the minors. ... Gibson celebrated his 55th birthday. ... The Diamondbacks made their first trip to AT&T Park of the year after the division rivals already played six games in Arizona. They won't meet again in San Francisco's waterfront ballpark until six games here in September. ... The Giants' Emmanuel Burriss singled in the second for his first hit of the year vs. Arizona after beginning 0 for 11. ... A moment of silence was held before the national anthem on Memorial Day for all of the fallen U.S. troops. ... Upton, 0 for 4 Sunday vs. the Brewers, has hit safely in 10 of his last 11 games. ... RHP Ryan Vogelsong (3-2) pitches Tuesday night against LHP Joe Saunders (3-3).