Upton's three-run homer off Francisco Liriano (3-10) in the third broke things open early. He added a two-run single off reliever Brandon Cumpton in the fifth as the Braves extended Pittsburgh's losing streak to a season-high seven games.
Aaron Harang (10-7) struck out four without a walk in 8 1/3 innings.
McCutchen went 0 for 4 in his first game back after missing two weeks with fractured cartilage in his ribs. The reigning National League MVP left the game after grounding into a double play in the bottom of the eighth.
The Pirates went 5-9 without their superstar center fielder, who went to the 15-day disabled list retroactive to Aug. 4 after injuring himself while swinging on a routine sacrifice fly against Arizona. He received a standing ovation when he made his first plate appearance but was caught looking at a fastball from Harang that caught the outside corner.
It marked the start of another forgettable night for the Pirates, who matched their longest losing streak since dropping seven in a row from Sept. 7-14, 2012. That skid came in the middle of a late freefall that sent them tumbling out of playoff contention after a promising summer.
While Pittsburgh is slipping, the Braves are surging behind Upton, who is hitting .382 (13 for 34) with four homers during his 10-game hitting streak.
Atlanta already led 1-0 in the third when Liriano -- who came in with a 2.15 ERA since the All-Star break -- allowed singles by Phil Gosselin and Freddie Freeman to start the inning. Upton sent a lined shot over the wall in left to make it 4-0 and the Braves kept piling on.
Heyward drove home B.J. Upton in the fourth and Liriano's control disappeared completely in the fifth. Chris Johnson reached on an error, Gattis singled and Andrelton Simmons walked to load the bases. B.J. Upton singled home Johnson and Heyward plated a pair with a sharp single to right off Cumpton.
Liriano gave up nine runs, seven earned, in four-plus innings. He walked three and struck out four while his ERA rose from 3.78 to 4.18.
It was more than enough support for Harang, whose only real trouble came in the ninth when he failed to get through his first complete game since June 11, 2013 while pitching for the Seattle Mariners.
Braves: After failing to retire a single batter against Charlotte in an International League game on Wednesday night, rehabbing right-handed reliever Shae Simmons will make a third appearance for Triple-A Gwinnett on Wednesday. Simmons, who has been on the disabled list since July 27 with a strained right shoulder, pitched one scoreless inning in his first outing last Saturday against Norfolk.
Pirates: Shortstop Clint Barmes was given a night off in Triple-A Indianapolis as he recovers from a strained left groin that has sidelined him since late June. The 35-year-old Barmes went 0 for 3 in his first game with the Indians on Monday night.
Braves: Alex Wood (9-9, 3.07 ERA) goes for his third straight victory on Wednesday for Atlanta. The 23-year-old has a 1.45 ERA over his last six starts but remains at .500 on the season because he receives the second-lowest run support in the majors.
Pirates: Ace-in-training Gerrit Cole (7-4, 3.78 ERA) returns from his second stint on the disabled list on Wednesday. Cole hasn't pitched in the majors since being sidelined by right lat soreness on July 9. He pitches seven scoreless innings for Triple-A Indianapolis last Friday. Cole is 4-1 in his last five decisions. He will be making his first career start against Atlanta.