Holmes broke clear with three birdies in four holes around the turn, before limping home with two late bogeys to clinch a one-stroke victory over fellow American Jim Furyk at Quail Hollow.
"This is a big win for me. It's been a long road," an emotional Holmes told reporters after sinking a three-foot bogey putt at the last to shoot 71 and finish at 14-under-par 274.
Furyk fired a 65 for second place, while Martin Flores (72) bogeyed the last to finish two strokes behind.
Five-time major winner Phil Mickelson, who surged into contention with a third round 63, was not a factor with a 76 to tie for 11th.
Holmes collected $1.242 million for his third PGA Tour victory. His two previous wins came in the Arizona desert at the Phoenix Open, in 2006 and 2008.
"Since then I've had two brain surgeries, broke my ankle, had arm surgery, the list goes on," said Holmes, 32, who displayed a prized mix of raw power and a deft short game.
"I've had some ups and downs. To win at a venue like this, with such a good field, I'm ecstatic."
Holmes arrived in Charlotte in good recent form that belied his lowly world ranking of 242 and despite taking the lead into the final round, he tried to downplay the importance of winning, saying that there were more important things in life.
At the same time he clearly was moved by his accomplishment after missing the last nine months of 2013 due to ankle and arm problems.
Before that, Holmes had brain surgery in 2011 after being diagnosed with Chiari malformation.
"It was causing me to be dizzy, really bad headaches," he said. "I had complications (from the surgery), so they went back in and stitched it up, removed a piece of my skull so the spinal cord can flow through it."
His victory on Sunday was aided by the self-destruction of some of his rivals.
Jason Bohn (70) was in the hunt until he pulled a four-iron into the water hazard for a double bogey at the par-three 17th, eventually finishing fourth on 11-under.
Englishman Justin Rose (71) pulled his drive into the creek for a double-bogey at the last to finish at 10-under.
Mickelson was not a factor after missing a three-foot par putt at the eighth hole, much to the disappointment of a huge gallery that followed him.
"I had two great putting days and two horrific ones," Mickelson said. "It was a really rough day on the greens."
Holmes, meanwhile, seemed to be cruising when he birdied the par-five 15th to open a three-shot cushion, but a bogey at the difficult 16th was the first chink in his armor.
He sank a clutch 10-footer to salvage par at the 17th, only to make a thorough mess of the 18th.
Holmes sliced his drive into trouble and then came up 40 yards short of the hole with his recovery.
A poor pitch left him 45 feet away, but he managed to two-putt for victory, earning a spot in next week's Players Championship.
- Sports & Recreation