Karlsson, a member of the European Ryder Cup team, finished at 13-under-par 275.
Second place went to Italian Francesco Molinar, who closed with a 70 for 277.
The win was Karlsson's first in two years.
"It's very nice to win, a great relief, and it would have felt a bit strange not to win this season because I've been playing so well," Karlsson said.
Miguel Angel Jimenez (66), Michael Campbell (70) and Ross Fisher (70) shared third place at 279.
Putin thinks Obama would save him if he were drowning
Rosie O'Donnell unveils nearly 50-pound weight loss