Australian Adam Scott took most advantage of the softer conditions caused by early-morning rain at the Old Course on Friday, shooting a seven-under 65 but he was still left two shots behind the charging 'DJ'.
Johnson shot a 67 to take command, with world No.1 Scottie Scheffler firing a second straight 68 to lie just a stroke behind the American at eight under overall.
Briton Tyrrell Hatton, who went round in 66, was level with Scheffler, while Sergio Garcia also had a spectacular morning with his 66.
Among the afternoon starters, Australian No.1 Cameron Smith opened with three straight birdies to move to eight under, while Garrick Higgo started with four in a row.
American Cameron Young, the overnight leader after a 64, bogeyed the first as he set off on his second round.
Johnson was the 36-hole leader at the last Open at the home of golf in 2015 and took the clubhouse lead midway through the second morning before he ended his round with a two-putt birdie at the 18th that ensured the lead.
Meanwhile, Tiger Woods looked certain to miss the weekend in what could be his final Open at the Old Course, after losing further ground.
After 11 holes, Woods, clearly struggling physically, was tied for 148th in the 156-man field at seven over.