Haas shot a 6-under-par 64 to overtake third-round leader Tom Watson and finish at 13-under 267 at the Baltimore Country Club East Course.
Watson closed with a 70, a stroke back.
Haas sank a 10-foot birdie putt to catch Watson at the 17th hole and won with a 3-foot birdie at the 18th.
"Today, I don't think I could have played any better," Haas said. "I didn't expect this. I was hoping that I could shoot something like this, but I didn't expect to do it in this wind."
Haas won $405,000 for his first win of the 2009 season and 14th overall on the senior tour.