McDonald (9-3) collected his fourth victory in four starts, holding the Giants to one run on four hits while not issuing a walk.
The right-hander located 77 of his 106 pitches for strikes in the outing, lowering his ERA to 2.37 as the National League Central-leading Pirates won for the fifth time in six games.
Michael McKenry homered and Neil Walker contributed an RBI double for the Bucs.
Ryan Vogelsong (7-4) absorbed the loss, surrendering three runs on eight hits over seven full frames.
Ryan Theriot provided the only RBI for the Giants.
Video of Victoria’s Secret models trying to 'twerk' hits Instagram
Penelope Cruz named 2013's 'Best Body' by Fitness magazine