Weibring closed out a 2-under 68 with a 2-foot par putt on the 72nd hole. He finished at 9-under 271, one stroke better than hometown favorite Fred Funk (66).
Price (71), Ben Crenshaw (66) and Jeff Sluman (69) were at 7 under, and Jay Haas (68) followed at 6 under.
Weibring earned $390,000, the biggest payday in his career.
It was his fifth win in six years on the Champions Tour, and one of the most significant of his career. He was 0-for-39 in major tournaments on the PGA Tour and 0-for-25 on the 50-and-over circuit.
Weibring's final round included four birdies, but the 55-year-old's biggest shots were on holes he parred. He salvaged par on 16 after hitting a 6-iron into the bunker, then drained a difficult 9-foot putt on 17 to maintain his grasp on the slim lead.
Weibring got help from Price, who missed a 3-foot birdie putt on 17 that would have created a tie at the top.
Price opened with a 70 on Thursday, then carded successive 66s to take a one-shot lead into the final round. He extended the margin with a birdie on No. 1, then added another birdie on 4 to go ahead by four strokes.
But successive bogeys on Nos. 7 and 8, combined with Weibring's birdie on 8, created a deadlock atop the leaderboard.
Price made it three bogeys in four holes at 10, and although he birdied 12, he couldn't make up the difference. He bogeyed 18 for his 71.
"I didn't play well. It's that simple," Price said.
After Price fell off the pace at No. 10, Crenshaw's third straight birdie got him even with Weibring. Haas joined the fray with a birdie on 12, creating a temporary three-way tie at the top.
Weibring parred the final five holes, and on a day of missed opportunities, that was enough to win.
Crenshaw, who lost his second-round lead with a 74 on Saturday, made a valiant run at his first Champions Tour win. He moved into contention with a run of three straight birdies on the back nine, but missed a 4-foot birdie putt on 17 that would have put him in a tie for the lead.
He then missed the fairway off the tee at 18. That led to his only bogey of the day in his 66.
"A disappointing finish. I had my chances. I really did," Crenshaw said. "I played well, but it's painful."
Funk's second-place finish moved the Maryland native ahead of Haas into the lead in the Charles Schwab Cup standings.
Sluman rallied with four birdies on the back nine for his 69.