The 36-year-old Johnson began the day two strokes behind fellow American Brendon Todd, but the overnight leader's challenge faded after a seven at the par-four 12th and a bogey two holes later.
Johnson held a two-shot lead with three holes remaining when play was suspended due to heavy rain.
He stumbled upon the resumption with a bogey four at the 16th, but two steady pars then secured a one-stroke victory – his first since March last year – on a final score of 19-under par.
The win was Johnson's first since March last year, but continued his streak of having won at least once for the past 13 years.
"I'm definitely proud of myself for continuing the streak and I want to keep it going," Johnson said.
"It was a long time between wins, though, and, so, hopefully it won't be that long for the next one."
American Kevin Streelman also shot a 67 to finish one stroke behind Johnson in second place, with fellow American Will Gordon's superb last day 64 leaving him one further back in a share of third with Mackenzie Hughes, after the Canadian's 67.
World No 1 McIlroy, who had slipped down the leaderboard on Saturday to start eight shots off the lead, had another up and down round, with some sensational golf mixed with costly lapses.
He began his day brilliantly by making a 23-foot birdie putt on the first but bogeyed two of his next three holes, before repairing that damage with birdies at the sixth, seventh and 10th.
The Northern Irishman then drained a a 35-foot putt for an eagle three at the 13th, chipped in from the bunker to birdie the short 16th, but stumbled again with a double-bogey six at the 17th when his second shot found the water.
His final round 67 left him in a group of nine players six shots behind Johnson on 13-under, including midway leader Phil Mickelson, who followed opening rounds of 64 and 63 with two rounds of 71.
England's Paul Casey carded a 68 to finish equal 32nd, while countrymen Ian Poulter and Luke Donald finished among the tail after a 69 and a 79 respectively.
The tournament was marred by the coronavirus, with seven Covid-19 related withdrawals and three positive tests among players.
Cameron Champ withdrew on Tuesday, Denny McCarthy tested positive on Friday, and Dylan Frittelli testing positive after missing the cut.
As a result, the PGA Tour is adjusting its coronavirus protocols. Players, caddies and any other people considered "inside the bubble" will have to test negative before being allowed onto the grounds of the Detroit Golf Club for this week's Rocket Mortgage Classic.