Vogelsong (7-4) gave up runs in the third, fourth and sixth innings. The Giants couldn't overcome it against McDonald (9-3), who wasn't fooling around in allotting just four hits and issuing 10 strikeouts. The only score he surrendered came in the sixth.
"We got a good start from Vogelsong, but we ran into one of the better-pitched games we've seen," Bochy said.
Vogelsong hurt his cause in the third inning by issuing a leadoff walk to McDonald, who came all the way around from first to score on a double by Neil Walker. Vogelsong then retired McCutchen, and in pitching to Garrett Jones was forced to take a 27-minute break on account of rain. It was no matter, as the righty came back to induce a quick flyout, ending the inning after giving up just one run.
"I actually felt better after the rain delay than I did before," said Vogelsong, who had to deal with a first-pitch temperature of 97 degrees. "I felt like it actually cooled off a little bit. It was pretty hot those first couple innings."
In the fourth, though, Vogelsong gave up a home run to Pirates backup catcher Michael McKenry, which put San Francisco in a two-run hole.
"I just made too many mistakes to a team that's swinging the bat pretty good right now," Vogelsong said. "Obviously, [McDonald] is having a good season and throwing the ball well. Going in, you know it's going to be a tough game. He pitched a little bit better than me today."
The Giants finally broke through against McDonald in the top of the sixth, when Gregor Blanco scored on a single up the middle by Ryan Theriot. Blanco had singled to right in the previous at-bat and reached second on a wild pitch. The run prevented a shutout, but it wasn't enough to win.
"Every day is a statement day," McDonald said. "You want be the guy who goes out there and is known as a competitor, who brings the same intensity every day.
"I had a pretty good arsenal today -- slider was better than it has been, the fastball command was good, threw some good changeups."
The Pirates pushed their lead back to two in the bottom half of the sixth. Leading off, McCutchen laced a single to left. He took off on a hit-and-run play three batters later, scoring from first as Pedro Alvarez doubled off the left-field wall.
"He got a sneaky fastball. His breaking pitches, they were great," Blanco said of the opposing starter. "He did a great job."
Vogelsong pitched seven innings, striking out five and walking one. He has now thrown at least six innings in 16 straight outings, which is the longest streak for a San Francisco starter since Atlee Hammaker went 21 straight starts with six innings or more in 1983.
The Giants' offensive woes didn't recede after McDonald left the game. Pirates reliever Jason Grilli struck out the side in the eighth, and closer Joel Hanrahan pitched a scoreless ninth for his 23rd save.
Blanco and Theriot each had two singles, while Brandon Crawford added one more. Nine different Giants struck out Saturday, with Blanco, Crawford and Brandon Belt racking up multiple K's. Cabrera went 0-for-4, dropping his average to .353.
"[McDonald] threw well. There's no getting around it. He pitched great," Bochy said. "We had a couple guys with some rough days at the plate, but you give him credit because he did throw well. He had good stuff; he was throwing hard and had a good curveball going. Slider, change -- he had it all working today."
Neither Vogelsong nor McDonald made the NL All-Star team this year, but each pitcher made a strong case. Entering Saturday's game, Vogelsong led the league in ERA (2.26), while ranking fifth in opponents' average (.217) and ninth in WHIP (walks plus hits per inning pitched, 1.11). For his part, McDonald came in ranking second in opponents' average (.197), third in WHIP (1.00) and fourth in ERA (2.45).
With the loss, the Giants' record away from AT&T Park fell to 20-23. They're 1-4 on the current road trip, with one more game to play before the All-Star break.