Drew Brees started to throw and then pulled the ball down, seeing that his intended target, Travaris Cadet, had tripped on a short route out of the backfield.
Brees stepped forward and tried to throw again as Cadet rose from the turf, but it was too late to avoid Ahmad Brooks' pivotal sack and strip.
Brees' third turnover over the game set up Phil Dawson's 35-yard field goal with 5:14 left in overtime, and the Saints lost for the first time this season at home, 27-24 to the 49ers on Sunday.
"It's a game of inches and split seconds," Brees said. "They got it out just before my arm was coming forward."
The play provided redemption for Brooks, whose unsportsmanlike conduct penalty on a late-game sack and strip of Brees one year ago helped the Saints pull out a comeback victory in these teams' previous meeting. It also ended a two-game skid for the Niners (5-4).
"I was rushing and turning the corner thinking, 'Dang, is he going to throw the ball yet? But he didn't," Brooks said. "I was able to make the play."
Brees was intercepted twice, the second time by Chris Culliver late in the first half on a pass intended for Graham, who was at the Niners goal line but had three defenders around him. The squandered scoring chance drew boos from the crowd in the Superdome, where the Saints (4-5) had not lost in more than a season.
"I can't turn the ball over at the rate that I'm turning it over and I certainly can't turn it over in the situations that I'm turning it over," said Brees, who's thrown 10 interceptions. "I would have booed myself on that one."
Still, Brees nearly overcame his mistakes, throwing two second half touchdowns to Graham to give the Saints a brief lead with 1:52 left in regulation.
New Orleans' defense, which sacked 49ers quarterback Colin Kaepernick four times, dominated nearly the entire second half, allowing the Saints come back. All New Orleans needed was a stop on fourth-and-10 to close the deal.
Kaepernick rolled right to buy time, spotted Michael Crabtree deep down field and unloaded his game-saving pass to the Saints' 27 to set up Dawson's game-tying field goal.
Crabtree "was about the third or fourth guy I looked at when I was scrambling," Kaepernick said. "I wasn't expecting it, but I'm happy it happened that way."
Saints coach Sean Payton said he would need to review the play on video to see what happened. Cornerback Corey White, who said the Saints were playing zone defense, said Kaepernick deserved credit for making a play.
"A scrambling quarterback, they like to buy time for a receiver to get open. That makes it tough," White said. "He's not going to throw it out of bounds. He's not going to take a sack. He just made a good play and threw it up."
That set up Dawson's tying 45-yard field goal with 44 seconds left — still enough time for New Orleans to nearly win it regulation.
Graham, a former college basketball player, made a laping grab of Brees' long heave in the final seconds, but was flagged for pass interference for apparently shoving defender Perrish Cox to the turf moments before the catch.
"Definitely not a push-off. I'm running down the field and I'm telling myself not to push off. Whatever you do, don't push off. Just go up and get it," said Graham. "It's interesting, you know, how guys grab me everywhere on the field and I put literally two fingers on somebody and you make that kind of call. That's why I switched; that's why I left basketball, so I could stop being penalized for hitting people."
Brees began the Saints' second-half comeback spectacularly, spinning away from blitzers Michael Wilhoite and Eric Reid before finding Graham for an 11-yard TD. That cut the Niners' lead to 21-17 in the third quarter. Brees later marched New Orleans 80 yards in 12 plays, hitting Marques Colston for a fourth-down conversion before punishing a Niners blitz with a quick 2-yard TD pass to Graham.
Kaepernick finished 14 of 32 for 210 yards. Anquan Boldin had six catches for 95 yards and a touchdown. Frank Gore scored on a 4-yard run set up by Antoine Bethea's interception.
Brees finished 28 of 47 for 292 yards, including 10 connections with Graham for 76 yards and a 31-yard TD to rookie Brandin Cooks.