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.
Wisconsin business offering 'therapeutic cuddling' forced to close
Exploding whale video goes viral on Internet