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.
Pistorius testifies he didn't consciously pull trigger when he shot girlfriend
Google buys drone maker Titan Aerospace