Duchene credited Johnson for the pass, but Johnson said he had the easy part.
"When you have good players like that and they're open, you just have to put it on their stick and they'll put it in," Johnson said.
Tyson Barrie and Johnson had goals and Semyon Varlamov made 40 saves for Colorado (9-9-0).
WATCH: All Avalanche vs. Blue Jackets highlights
Cam Atkinson scored twice and Curtis McElhinney made 24 saves for Columbus (10-4-3), which had won four in a row and had its record seven-game home winning streak end. Columbus had won its three previous overtime games during the streak.
But the Blue Jackets have lost both of McElhinney's starts in overtime.
Atkinson tied the score 2-2 with seven seconds left in regulation while McElhinney was pulled for an extra attacker. Zach Werenski sent a pass deep to Sam Gagner, who found Atkinson at the left dot for his seventh goal.
"We kept coming and coming," Blue Jackets coach John Tortorella said. "We got a point. That's a huge point for us. I don't have a lot of complaints."
After Atkinson scored at 9:00 of the first, Colorado got second-period goals from Barrie and Johnson for a 2-1 lead. Barrie scored his second of the season at 3:05 to make it 1-1.
Johnson put a shot from the right point through traffic at 9:00 to make it 2-1 for his first goal of the season.
The Blue Jackets had a power-play goal by Boone Jenner that would have tied it 2-2 disallowed with 3:37 left in the second when a challenge by Bednar that Scott Hartnell interfered with Varlamov was upheld.