The 36-year-old American scored a last round of 68 to finish -10 for the tournament, two shots ahead of fellow American Jim Furyk.
Veteran Furyk was leading by one shot going into the last day however a final round of 71 was not good enough to win his second major championship.
Dufner, who in the same major in 2011, lost to Keegan Bradley in a playoff, held his nerve on Sunday and made important birdies at the fourth, fifth, eigth and sixteenth holes. Both Furyk and Dufner bogeyed the 17th and 18th however it wouldn't change the outcome as the man from Cleveland became the 18th different major winner out of the last 20 tournaments.
It was Dufner's round on Friday that really set the American in good contention for the result that he deserved, equalling the lowest score in major history of 63.
Henrik Stenson had an impressive tournament, finishing third one shot behind Furyk on seven under. Fellow Swede, Jonas Blixt came fourth on six under.
Rory McIlroy bounced back well from his disasterous UK Open campaign to finish on three under. McIlroy was the defending US PGA champion after winning the title by eight shots last year.
Elsewhere, Tiger Woods will have to wait until Augusta in 2014 to attempt to win his first major in five years. Woods failed to score under par in each of his four rounds as the 15 time major winner finished tied 40th on four over.