Johnson had a five-stroke lead after Friday's round, in which he shot a course-record tying 9-under-par 63. He had 10 birdies against the two double bogeys Saturday that left him at 6-under 66 for the day and at 18-under 198 for the tournament.
Defending champion Ian Poulter had an eagle, eight birdies and a bogey en route to a 63 and pulled into second at 15-under.
Graeme McDowell, with a 64 Saturday, sits in third at 14-under while Graham DeLaet and Justin Rose, who each had 65s in the third round, are tied for fourth with Rory McIlroy at 12-under 204. McIlroy turned in a 5-under 67 Saturday.
Martin Kaymer set a course record with a bogey-free 10-under 62. Three times he had three-birdie runs. He made six birdies in the first holes of the second nine in getting to 10-under and a tie for seventh for the tournament.
Poulter had a five-hole birdie string over Nos. 3-7 that pulled him within two strokes of Johnson's lead but Johnson had five consecutive birdies himself over 5-9 to make the turn in 30 and return his lead to five strokes.
He slipped to a double bogey 6 at the 10th, a hole that Poulter birdied for a three-stroke swing. Johnson righted his game with four straight birdies beginning at No. 13. Poulter eagled the par-5 14th and finished bogey-birdie for his 63.
Johnson fell closer to Poulter when he hit his drive on the par-5 18 in the water and wound up with his third double bogey of the tournament.
Boston schools pull out free condoms over wrapping complaints
Ray Liotta sues skin care company over use of likeness