Dubois scored with 31.3 seconds left in regulation to tie it 2-2. With Korpisalo pulled for the extra skater, Dubois got a rebound in the crease and beat Gibson with a backhand.
"Anytime you're down late like that and you tie it up in the last minute, that's huge to get that point," Columbus defenseman Ryan Murray said. "It shows a lot of character from our guys that are out there to bear down and get that done for us."
Fowler beat a screened Korpisalo glove side from the high slot to give the Ducks a 2-1 lead at 18:26 of the second period.
"We've got to find a way to not trail every game, especially not try to come back every game, and try to jump out to a lead," said Columbus defenseman Seth Jones, who had two assists.
Fowler tied it 1-1 at 9:09, getting a loose puck in front of the net on a 4-on-4. Rickard Rakell made an attempt to get around Murray, but the puck slid off his blade, through the legs of Markus Nutivaara to Fowler, who shot the puck into the open net.
"More times than not, when you do that, the puck doesn't find you," he said. "For whatever reason, tonight was the night it did."
Dubois gave the Blue Jackets 1-0 lead at 3:33 of the second period, beating Gibson five-hole off a drop pass from Boone Jenner 11 seconds after he was released from his third minor penalty of the game.
Ducks forwards Patrick Eaves and Pontus Aberg each had scoring chances in the first period. Each received a pass alone in front of the net, but Korpisalo made a save on Eaves on the power play at 6:07, and Aberg's shot slid between Korpisalo's pads wide at 12:01.
Gibson slid across the crease to save a one-timer from Zach Werenski off a rush at 10:34 of the first.
Ducks forward Ryan Getzlaf did not play because of an upper-body injury.