Minor (5-6) held the Cubs without a hit until the fifth and gave up three runs, two earned, and three hits in 6 1/3 innings. The left-hander has won consecutive starts after losing two in a row.
"He made his pitches when he needed to," McCann said.
Minor entered with an ugly 6.20 ERA after giving up four runs in each of his past three starts, putting his rotation spot in jeopardy.
"Every week I'm trying to get better," Minor said.
Because of Minor's struggles, manager Fredi Gonzalez was asked before the game if he needed a good start to protect his place in the rotation. Gonzalez said "every start is important" but said Thursday night's game wasn't especially crucial for Minor.
Gonzalez said after the game Minor should "go into the All-Star break feeling good about himself."
Garza (4-7), who could be one of the top starters on the market ahead of this month's trade deadline, allowed five runs and five hits in four innings. He struck out six and walked three while throwing 94 pitches.
Garza struck out Michael Bourn in the first, but the inning quickly unraveled from there.
Martin Prado hit a one-out single before Heyward drove a 1-2 pitch over the wall in right for his 14th homer. Freeman then singled to right and McCann sent another 1-2 offering over the wall in right for his 10th of the season.
Francisco ended the inning with a 16-pitch at-bat, fouling off pitch after pitch until he finally hit a bouncer to first base.
"A couple pitches hit out of the ballpark and then the 16-pitch at-bat to Francisco kind of killed the whole outing, really," Cubs manager Dale Sveum said.
Garza threw 44 pitches in the inning.
"I don't think he ever recovered from it," Gonzalez said.
Francisco added another long at-bat in the fourth. He made Garza throw 12 pitches before taking a walk.
"Two at-bats. We kind of got tired of him," Sveum said of Francisco. "Move on to the next guy."
Garza downplayed the effect of Francisco's long at-bats on his short night.
"That's just an at-bat," Garza said. "That's all it is. He battled, I battled. I won the first one, he won the second one. That's all it is."
Freeman had a solo shot in the third and Francisco went deep in the eighth against Manny Corpas.
Atlanta went 5-5 on its longest homestand of the season.
The Cubs' first hit off Minor was a homer by Geovany Soto with one out in the fifth.
"I wasn't really all that worried about the home run," Minor said. "I was trying to throw strikes. McCann set up in the middle and (Soto) hit it."
The Braves answered Soto's shot with a run off Scott Maine in the bottom half. Prado singled, moved to third on Heyward's single and scored on McCann's fly ball to right field.
Pinch hitter Reed Johnson delivered a two-out RBI single and Heyward made a wild throw to third base for an error, allowing Soriano to score.
There is new reason for Minor, Randall Delgado and perhaps other Atlanta starting pitchers to be wary. The Braves recently signed four-time All-Star Ben Sheets, who had mixed results for Double-A Mississippi in his first minor league start on Wednesday night. He gave up four runs in five innings but retired the last 10 batters he faced.
The Braves placed LHP Jonny Venters on the 15-day disabled list with a left elbow impingement. The team recalled LHP Luis Avilan from Triple-A Gwinnett. ... Bourn finished second to David Freese of St. Louis in online voting for a spot on the NL All-Star team. ... Prado has an 11-game hitting streak. ... Sveum said he will announce Friday if Ryan Dempster will come off the disabled list to start on Sunday against the Mets. Dempster has been on the 15-day DL since June 18 with tightness in his right lat muscle. ... Atlanta opens a three-game series at Philadelphia on Friday night with Tim Hudson (6-4) facing the Phillies' Kyle Kendrick (2-8). ... The Cubs are at the Mets on Friday night with Travis Wood looking for his fourth win against New York's Johan Santana.