Roberts made a 5-foot birdie putt on the final hole to ensure the victory after bogeys on three of the previous four holes.
"We did make it interesting," he said. "We got off to the start you dream of doing, but hit a snag on the back."
Roberts began the day two strokes behind Calcavecchia, but made birdies on three of his first four holes. Even with a bogey on the seventh hole, Roberts was able to maintain a two-stroke lead, until the 16th hole. He missed a 3-foot par putt on 16 after his second shot hit a spectator box.
On the 17th hole, Roberts bogeyed again, unable to get up and down after his tee shot came to rest in the right greenside rough. He missed a 6-foot par saving putt.
"I kind of let everybody in the game," Roberts said. "I got out of rhythm. I didn't hit bad putts. The only bad putt I hit was on 12."
Langer, who was in the group in front of Roberts, was two strokes behind but made a double-bogey on the 17th hole when his putt from the fringe on the par 3, rolled into the right greenside bunker.
"I didn't think I hit that bad a putt," Langer said. "Actually when I hit the putt I thought it was pretty good. It was accelerating instead of slowing down. Once it got 3 yards past the hole there was no stopping it. The pin is pretty brutal."
The Champions Tour victory was Roberts' 13th and he earned $262,500. His last victory was in 2010, a 34-tournament span.
"I was getting a little worried about it," Roberts said of not winning. "This was huge for me."