The Swede needed a two-under-par 70 in the final round, which began with him and Lima as co-leaders through 54 holes at the rain-plagued event.
Fasth followed a near-disastrous double bogey at No. 10 with four birdies on the last seven holes. He made a key seven-foot birdie putt at No. 17.
Langer, 49, who has been dealing with a neck injury, was 11 shots of the lead after the first round. At one point, he trailed Fasth by only one shot, and with a victory, would have been the oldest player ever to win a European Tour event.
"I made a mistake by not looking at leader boards until the 15th," Fasth said. "When I saw that Bernhard was only one behind, it got me going."
Three players shared fourth place at 10-under 278.