McDonald (7-4) allowed eight hits but pitched well with runners on base and didn't issue a walk as the Pirates kept pace with St. Louis for a first-place tie atop the National League Central.
Ronny Cedeno, Michael McKenry and Andrew McCutchen drove in runs for the victors.
Atlanta's Tim Hudson (9-7) absorbed the loss, surrendering three runs on five hits.
Chipper Jones belted a solo homer for the Braves.
UPI horse racing weekend preview
Bo Jackson: I can't help Jameis Winston anymore