Langer dramatically birdied four of the last five holes to shoot an eight- under-par 64, breaking the Gardagolf course record and beating Olazabal by a stroke, totalling 15-under-par for the four rounds.
It was the German's first European Tour victory in nearly two years, and the form of Langer and Olazabal, who closed with a 68, is bound to hearten the Ryder Cup captain, Seve Ballesteros.
By taking the pounds 77,897 first prize, Langer moved to sixth in the Ryder Cup points table, and Olazabal's pounds 51,924 for second place put him in 10th place.
That means he has reached one of the automatic positions, after only six events since returning from an 18-month lay-off with foot problems.
Northern Ireland's Darren Clarke also moved up in the cup table to fifth, by finishing in third place on 11-under-par, with a 67.
Olazabal's only fault in an exciting finale was failing to pick up birdies down the closing stretch. He had kept Langer at bay until then, but the German's run as he single-putted all the last five greens, closing with a 15-footer from the green fringe on the 18th, proved too much for the Spaniard.
After starting three ahead of Langer and one in front of the field, Olazabal looked safe until the German got level by the 16th. As Olazabal had to work for his pars in the end, the final putt earned Langer the victory he had craved for some time.
"It's a marvellous feeling to get another victory after nearly two years, and especially doing it with a course record in the end," Langer said after his 35th win on the European Tour.
"I had felt I'd need a 65 or 66 to beat Jose Maria, because I knew how well he was putting, having played with him on Monday and Tuesday before the tournament.
"He was always going to be the one to beat. I switched to a wooden driver from metal for the last two rounds, and that paid off for me."
Olazabal said that Langer's brilliant finish had been too much in the end. "I am not disappointed, because I did not give the tournament away," he said. "Bernhard won it with an unbelievable display. I said before the off this morning that I would take a 68, and that's what I got."Reuse content