Gonzalez finished with 11 catches for 122 yards and two scores for Atlanta (8-1), and in the process became the first tight end to catch 100 touchdown passes.
Brees threw for 298 yards and three TDs as the Saints (4-5) won for the fourth time in five games, keeping alive hope of getting back into the wild card race after an 0-4 start. It was also New Orleans' 11th win in 13 games against Atlanta since Brees joined the Saints in 2006.
Matt Ryan was 34 of 52 for 411 yards and three touchdowns with one interception, and the game was there for him to win when his 9-yard pass to Harry Douglas gave Atlanta a second-and-goal at the 1. But Ryan could not connect on a second-down pass for Gonzalez, the Saints stuffed Michael Turner for a 1-yard loss on third down, and then Greer broke up Ryan's pass over the middle for White.
After three conservative run calls from their own 2, the Saints still had to punt the ball back to Atlanta with about 40 second left, but the Falcons' hopes were extinguished soon after when Gonzalez could not handle a fourth-down throw in tight coverage along the sideline.
Although the Saints' defense came in allowing a league-worst 176.5 yards rushing per game, they held Atlanta to 46 yards on the ground.
By contract, New Orleans rushed for 148 yards, highlighted by Chris Ivory's career-long 56-yard scoring run that gave the Saints a spark after Atlanta had raced to a 10-0 lead.
Ivory used a hesitation move to get to the corner past Asante Samuel, broke a tackle by Thomas DeCoud, kept his balance, cut back and then stiff-armed Dunta Robinson before trotting into the end zone.
The Saints led by as much as 28-17 on Brees' scoring strike to Marques Colston.
Colston's TD was the 55th of his career, tying Deuce McAllister for first all-time in that category in Saints history. The touchdown capped an 81-yard drive which started with rookie Corey White's interception and was highlighted by Lance Moore's diving one-handed catch for a 29-yard gain to the Atlanta 32.
The Falcon's chipped away, pulling to 28-27 on Gonzalez's second TD and Matt Bryant's short field goal after New Orleans' second defensive red zone stand of the game.
New Orleans then briefly interrupted Atlanta's momentum when Graham's 46-yard catch set up Garrett Hartley's 31-yard field goal to make it 31-27.
Atlanta went 80 yards in seven plays on its first drive, highlighted by White's 49 yard reception to the New Orleans 1. That set up an easy TD toss to eligible offensive tackle Mike Johnson.
Brees then underthrew Colston on an apparent miscommunication and Samuel made a diving interception and returned it to the Saints' 12. However, Samuel taunted fans afterward drawing an unsportsmanlike conduct penalty that moved the Falcons back to the 27. The Saints' defense forced a field goal that made it 10-0.
New Orleans vaulted into the lead with touchdowns on two straight possessions, the first on Ivory's long run and the second on Brees' first TD connection with Graham from 29 yards out.
The Falcons pulled back in front on Gonzalez's 1-yard TD catch, capping a drive on which Atlanta converted three times on third down all on Gonzalez catches.
Then Graham who like Gonzalez is a big tight end with a basketball background helped New Orleans go back in front before halftime, making three catches for 47 yards, the last a 14-yard TD to make it 21-17 at halftime.