Despite also making a double-bogey on the 10th, Johnson stood on the 18th tee with his five-shot halfway lead intact thanks to a front nine of 30 for the second day running and four more birdies in succession from the 13th.
However, the big-hitting American then drove into the water down the right-hand side of the par-five 18th and found a greenside bunker with his fourth shot, eventually signing for a seven and third-round 66 to lie 18 under par.
Defending champion Ian Poulter is Johnson's nearest challenger after a superb 63, with Ryder Cup team-mate Graeme McDowell a shot further back following a 64.
US Open champion Justin Rose, first-round leader Rory McIlroy and Canada's Graham DeLaet are all six off the pace on 12 under, Rose and DeLaet shooting 65 and McIlroy returning a 67. Germany's Martin Kaymer is 10 under after setting a new course record with a flawless 62.
"I'm still a little mad from my double-bogey on 18," Johnson told a press conference at Sheshan International Golf Club. "Obviously to have a three-shot lead going into the last day is good and I am looking forward to the challenge. I still have to play really well.
"The guys that are right behind me, they are playing very well, too. So it's still going to be a tough day tomorrow. I've got to come out and make a lot of birdies.
"If you told me teeing off I would shoot six under I would have taken it, but I obviously left a few shots out there. I'm definitely happy with what I shot. Obviously I'm just not happy with the way I finished.
"Making two doubles, there's no excuse for that. Especially the way I'm playing right now, it shouldn't happen. But 66 is still a good day and I did make 10 birdies, so I hit a lot of great shots."
Poulter, looking to become only the second player after world number one Tiger Woods to defend a WGC title, had charged up the leaderboard with five birdies in a row from the third and another on the ninth to be out in 30.
The Ryder Cup star also birdied the 10th, but Johnson was producing some equally impressive figures, picking up a shot on the third and then making five birdies in a row from the fifth to match Poulter's outward score.
However, the seven-time PGA Tour winner then made a complete mess of the 10th, coming up short of the green with his approach and twice seeing his pitch to the green fail to get to the top of a steep slope and roll back to his feet. His third attempt clattered into the pin and in the end he did well to hole from 12 feet to limit the damage to a double-bogey six.
When Poulter then holed from 20ft for an eagle on the 14th the gap was suddenly down to one, but Johnson responded once more with birdies on the 13th, 14th, 15th and 16th.
Poulter three-putted the 17th for his only bogey of the day but birdied the last to remain firmly in the hunt for the first prize of just over 1million euros (£856,000).
"Nine under par on any golf course is a good score and that was a good nine under par," Poulter said. "I guess the only blemish for me, which leaves a bit of a sour taste, was three-putting 17, and actually missing a couple of opportunities.
"As silly as it sounds when you make eight birdies and an eagle, there were putts on one, two and eight that I could have made and a few others."
McDowell will certainly not have given up the chase, the Northern Irishman winning the 2010 US Open after Johnson squandered a three-shot lead in the final round with a triple-bogey on the second hole and double-bogey on the third at Pebble Beach. Johnson shot a closing 82 and McDowell's 74 was enough to win by one from France's Gregory Havret.
"Bizarrely, I really haven't got it going on the greens yet this week," said McDowell, who carded six birdies and holed out from a greenside bunker on the short par-four 16th for an eagle.
"I made a couple today and it was bit of a bonus with the bunker shot on 16. I haven't holed a lot of putts, though, so hopefully I'm saving it for tomorrow."
Having started from the 10th, Kaymer had a chance at recording the first 59 on the European Tour when he stood 10 under par with three holes to play, but was unable to find any further birdies.
"I've shot 59 before (on the European Professional Development Tour in 2006) and I thought there's a chance, especially after my birdies on four, five and six," the 29-year-old said. "You have three holes to go and you need three birdies.
"I had a good chance on seven but then I went for the green on eight but got in the bunker and had an unlucky lie. I had another chance on nine but you can't make them all. It was definitely in my thoughts. It would be nice to shoot 59 twice."
Perhaps giving Johnson a subtle reminder of what happened at Pebble Beach, McDowell added: "From here it looks like Dustin is going to have to beat himself for anybody to have a chance to catch him."
McDowell is currently second in the Race to Dubai, 443,725 euros (£378,666) behind Henrik Stenson and added: "Race to Dubai points will be very important to me; I have a lot to play for tomorrow. If not the trophy, second place will certainly be worth my while tomorrow."