The 39-year-old Swede finished at 13-under 275 for his first win since the 2006 Deutsche Bank Championship. A member of the European Ryder Cup team, he has had nine top-10 finishes this year, including three in the majors.
It feels very nice to win, great relief to do it, Karlsson said. It would be strange to finish without a title.
Molinari, of Italy, had four consecutive birdies on the back nine to finish with a 70.
The other European Ryder Cup players in the tournament played well going into the competition against the U.S. that runs Friday through next Sunday at Valhalla in Kentucky.
Miguel Angel Jimenez of Spain had six birdies in a 66 to total 279 for a share of third place with Ross Fisher of England (70) and Michael Campbell of New Zealand (70).
Soren Hansen of Denmark, last years winner, had a 69 to finish tied for eighth, while Graeme McDowell of Northern Ireland (71) ended with a share of 16th.
Former Masters champion Fred Couples (72) and two-time major winner John Daly (77) finished 16 and 20 shots behind Karlsson, respectively.
Karlsson led by three shots coming into the final round. He birdied his first hole, but bogeys at Nos. 3-4 trimmed his lead to two shots. He recovered quickly with three consecutive birdies, stretching his lead to five strokes after seven holes.
Molinari missed a short putt for birdie at the par-3 16th that would have cut the lead to one shot after Karlsson bogeyed the hole. Molinari also had a birdie attempt at the next hole that stopped just short.
He played fantastic, but the 17th definitely gave me a little bit of a cushion, Karlsson said.
Karlssons eighth career European title moved him from sixth to second place on the European tours money order, behind Padraig Harrington of Ireland.