McCann hit a three-run homer, Charlie Morton finally figured out how to pitch at home and Atlanta beat the slumping Marlins 4-2 on Thursday night.
The Marlins are 10-15 in August, haven't won two games in a row this month and fell six games behind the idle New York Mets in the NL East. Florida begins a three-game series at home against the Mets on Friday.
Asked if the games against the Mets were crucial, Marlins manager Fredi Gonzalez replied: "Whether it's urgency, a must, or a need, we've got to win some ball games."
Marlins outfielder Luis Gonzalez agreed.
"Now we have to play the Mets head to head. They're must wins," he said. "It's no secret. We're running out of time. There's no margin for error."
It all could have ended differently if not for a brilliant leaping catch at the left field wall by Atlanta left fielder Brandon Jones in the sixth inning.
"I didn't think I had a chance to get it," Jones said.
With the Marlins trailing 4-0, Dan Uggla led off with a double and came home on a double by John Baker. Pinch-hitter Paul Lo Duca then walked and Ramirez followed with a deep drive that everyone in the stands and dugouts thought was a tying home run.
"That ball, everyone in the stadium and everyone else thought it was out except the left fielder. It's a game of inches," said Florida's Luis Gonzalez.
"I thought the ball was a tape-measure [shot]," added Atlanta manager Bobby Cox. "I didn't even look at it. That catch was the game."
It turned out to be the first of two big defensive plays in the inning.
After Ramirez's out, Gonzalaz doubled home Baker to make it 4-2, but Lo Duca was thrown out trying to score and the Marlins had to settle for only two runs.
The win was only the fourth in 17 games for the Braves, who are a dismal 14-25 since the All-Star break and long ago fell out of playoff contention. It was their first series win at home since July 4-6, when they won two of three from Houston.
Morton (4-8) had been 0-6 with an 8.18 ERA this season at Turner Field, but the rookie right-hander went six innings and allowed only four hits. It was his first start since allowing five hits and four runs over 1 1/3 innings in an 18-3 loss at St. Louis last Friday.
"I didn't know that," Morton said of his winless streak at home.
Mike Gonzalez came on in the ninth and struck out the side to pick up his seventh save in seven attempts and 37th consecutive save overall. According to the Elias Sports Bureau, that's the longest current streak in the majors.
The left-hander has not blown a save since June 25, 2004, against Cincinnati when he was a member of the Pittsburgh Pirates.
The Braves took a 1-0 lead off Anibal Sanchez (2-3) in the second on a run-scoring single by Martin Prado, and made it 4-0 when McCann broke out of a 1-for-16 slump in the fifth inning with his 22nd home run of the season. The 342-foot shot over the right-field fence drove in Josh Anderson, who had walked and stole second, and Chipper Jones, who was intentionally walked.
Sanchez went five innings and allowed four hits, four runs, walked five and struck out two.
"That was the only hit he got against us," Fredi Gonzalez said. "Pick your poison. It was either Chipper or him. It's a decision you make. Sometimes it works and sometimes it gets you. [McCann is] a major-league hitter and an All-Star and he got us."
Anderson was recalled Wednesday from Triple-A Richmond, started in center field and led off. He went 1-for-2 with a pair of walks and scored a run. He was called up earlier in the season and hit .318 (7-for-22). ... The Marlins had homered in eight straight games. ... Ramirez needs one stolen base for his third straight season with at least 30. And with 28 home runs, he could join Preston Wilson as the only Marlins to join the 30-30 club. Wilson did it in 2000.