The Braves moved into a third-place tie with Florida in the NL wild-card race. They began the night four games behind wild-card leader Colorado.
"Every game with them is going to be a big game, so I knew tonight was going to be a big game," Hanson said about the Marlins. "I just wanted to go out there and do my best and make pitches. Everything felt good."
Hanson (9-2) gave up four hits and three runs in seven innings. He walked three and struck out seven to improve to 4-0 in August. The right-hander has not allowed more than seven hits or three runs in any of his four starts this month.
"Hopefully, he'll be Rookie of the Year," Braves manager Bobby Cox said. "He pitched a great ballgame, especially the first four innings. Man! He hardly ever missed."
The 22-year-old Hanson faced the minimum 12 batters though four innings before giving up three runs in the fifth.
The Braves won for the first time in five home games against the Marlins this season.
Gonzalez said the Braves felt a sense of urgency after losing Friday night's series opener.
"That's what it's about now," Gonzalez said. "We had to make sure we got this one today. We talked about it before the game. ... There's no chance for losing. That's the way we're going to have to keep playing."
Chris Volstad (9-10) gave up six hits and four runs in four innings.
"I thought he did well after the first inning," Florida manager Fredi Gonzalez said.
Gonzalez said right-hander Brendan Donnelly, who left in the eighth with a right calf strain, is headed to the disabled list.
"It's hard to pitch with a calf [injury]," Gonzalez said.
Donnelly gave up a single to Escobar in the eighth inning before Matt Diaz followed with a sacrifice bunt. Donnelly pulled up after fielding the bunt and throwing out Diaz at first.
Gonzalez then removed Donnelly from the game.
Infante, who has made a combined 24 starts at three infield positions, made his first start of the season in left field. He made a running catch off Chris Coghlan's line drive to open the game.
LaRoche had two hits and is batting .415 with 16 RBI in 19 games since his July 31 trade to Atlanta from the Boston Red Sox.
The Braves loaded the bases against Brian Sanches and Renyel Pinto in the seventh but couldn't score. Pinto walked Chipper Jones to load the bases. With the Turner Field crowd of 35,200 standing and cheering, Pinto struck out LaRoche on a 3-2 pitch to end the threat.
- Escobar's homer was his first since July 23.
- Infante's sixth career leadoff homer gave the Braves home runs in eight straight games.
- Braves OF Ryan Church was held out with back spasms. The Braves also were missing OF Garret Anderson with an inflamed sciatic nerve in his back and INF Martin Prado (exertional headaches).
- Marlins 1B Nick Johnson (sore right hamstring) missed his sixth straight game.