McFarlane shot a fourth round 71 in a fierce wind to finish on 282, six under par, and one shot ahead of Gordon Brand Jnr and Sweden's Anders Forsbrand.
He was delighted with his win, which came after 11 years on the Tour. "I knew I was too good a player not to win some time," he said, "but it hasn't sunk in yet."
McFarlane drove into a ditch at the 10th, had to take a penalty stroke, had a double bogey six and went two behind Brand, his playing partner.
"I then told myself then not to make any more stupid mistakes," said McFarlane, and from that point he shot three successive birdies followed by five successive pars to win the title.
Meanwhile, in South Korea, Ian Woosnam won his second tournament of the week, beating Sandy Lyle in a sudden-death play-off in the Hyundai Motor Masters in Seoul. Both made pars at the first extra hole of sudden death, although Woosnam's 12-foot birdie putt slipped narrowly past the hole. Both Lyle and Woosnam hit approach shots to within 15 feet on the second extra hole, but Woosnam converted his putt to win.
For the second time this week heavy rain and lightning caused play to be suspended. At that stage, Lyle had completed six holes and had assumed the outright lead on six under par. Woosnam, playing ahead of Lyle, was one stroke behind.
Woosnam, winner of the Volvo PGA championship at Wentworth, was quickly out of the blocks once play resumed and shot a bogey-free final round of 68 to deny Lyle.
Although delighted to add yet another title to his impressive collection of international wins, Woosnam said that he felt sorry for his good friend and former Ryder Cup team mate Lyle. Despite his defeat, Lyle was happy just be in a position to challenge for the top prize.