Fasth finished at 13-under 275 to overtake Langer, who set the early clubhouse lead at 11-under. The German, who turns 50 in August, shot a 67 to tie for second with third-round co-leader Jose-Filipe Lima of Portugal, who shot a 72.
Fasth had five holes to play when Langer finished. Despite the thousands of German fans waiting for him to stumble, Fasth hit three straight pars and then made a seven-foot birdie putt on No. 17 to earn his sixth European Tour victory and $447,600.
'I always felt the tournament was mine to lose,' Fasth said. 'I decided I wasn't going to look at the leaderboards and didn't know anything about Bernhard Langer's charge until I reached the 15th hole.'
Langer, who shot a 76 in the first round when he needed treatment on the course for an injured neck muscle, said he proved he can still contend.
'That's why I still go out there,' said Langer, who was 15-under over the last three rounds. 'It is nice to still be in contention once in a while at my age.'
Lima entered the final day tied for the lead but landed in water on No. 6, and bogeyed again on No. 7 after hitting a bunker. His birdie on the 18th saved the tie for second.
Ricardo Gonzalez of Argentina (70), Anders Hansen of Sweden (68) and Maarten Lefeber (67) were tied three strokes off the pace.