It was the 77th career PGA Tour event for Todd. He earned $1,242,000, a two-year PGA Tour exemption and a spot next year in the Masters.
Todd finished at 14-under 266. He took the lead for good with birdies at Nos. 9 and 10, and went on to become the eighth first-time winner this season.
Weir, the 2003 Masters champion who won the last of his eight PGA Tour titles in 2007, finished with a 67. Charles Howell III and Marc Leishman tied for third at 10 under.
After Todd hit his tee shot at the 195-yard second into a greenside bunker, his shot from the sand landed on the green and rolled in for a birdie. When he knocked in a 14-foot birdie putt at the 181-yard fifth, he tied Weir - who made a bogey on No. 6 - for the lead at 12 under.
Todd took the lead for good with consecutive birdies midway through his round, a 6-footer at No. 9 and a 24-footer at No. 10.
Weir had his best tournament since finishing second behind Dustin Johnson at Pebble Beach in 2009. The Canadian left-hander hadn't had a top-25 finish since 2010, the same year he suffered a partial ligament tear in his right elbow before a stretch when he missed 17 cuts in a row - including all 14 tournaments he started in 2012.
Howell shot a 67 with a three-putt bogey on the final hole, while Leishman had three bogeys in a five-hole stretch on the back nine for a closing 68.
Todd is the fifth former University of Georgia player to win on the PGA Tour this season. He joined Masters champion Bubba Watson, Harris English, Russell Henley and Chris Kirk.
An errant tee shot at the 185-yard 13th that settled at the base of a tree, forcing the slender 6-foot-3 Todd to set up left-handed - which would have been natural for the 44-year-old Weir - and strike the ball with the back of his bladed club. The ball popped up slightly and rolled to 7 feet of the cup, and Todd saved par.
Todd played his last 31 holes at TPC Four Seasons without a bogey.
Weir had birdies on four of the first five holes. He was 13 under and ahead of Todd by two strokes when his tee shot at No. 5 settled 1½ feet from the cup. That came after Weir blindly hit out of a fairway bunker to 3 feet at No. 4.
But Weir missed the fairway and green for a bogey at the 431-yard sixth hole at the same time Todd was tapping in at the fifth.
Boo Weekley (68) was 9 under to tie for fifth with James Hahn (70). Weekley is the defending champion at Colonial, about 30 miles away and the next tournament.
Louis Oosthuizen, the 2010 British Open in the final group with Todd, had already slipped four strokes back at the turn before bogeys at Nos. 10-11. The 2010 British Open champion shot 74, 10 strokes worse than Saturday, to tie for 11th at 6 under.
Martin Kaymer won The Players Championship last weekend and opened at the Nelson with consecutive 67s. But he shot 71 Saturday before a bogey-birdie-bogey start Sunday on way to a 72 and tied for 29th at 3 under.
That was a stroke better than Jimmy Walker, who will remain No. 1 in the FedEx Cup standings.
Jordan Spieth, the 20-year-old Dallas native ranked eighth in the world, had a closing 68 to finish 2-under and tied for 37th at the tournament where he made the cut as an amateur at ages 16 and 17. He finished two strokes behind 17-year-old Scott Scheffler, the top junior golfer from Dallas who played on a sponsor exemption.