Jean-Sebastien Giguere got the start, and a well-earned point, but Mathieu Garon stole one too many pucks for the Ducks to steal a victory.
Kristian Huselius and Rick Nash scored on Giguere in the shootout, and the Ducks fell to 0-1-1 on their four-game road trip.
Garon stopped both Ducks shootout attempts, by Getzlaf and Perry. He also denied Getzlaf with a minute remaining in the second period, after Ryan backhanded a no-look pass to Getzlaf, whose point-blank wrister was gloved by Garon at the goal line. Fifty-two seconds later, Fedor Tyutin dove into the passing lane to break up a 2-on-1 pass from Ryan to Getzlaf; a goal on either play would have given the Ducks a 3-2 lead.
Giguere finished with 27 saves in his first game action since Oct. 24. Nash and linemate Antoine Vermette scored goals for the Blue Jackets.
Ryan Getzlaf assisted on goals by Bobby Ryan and Todd Marchant, and he and Corey Perry kept their 10-game scoring streaks alive. Scott Niedermayer reached the 1,200-game plateau, becoming the fifth active defenseman to reach that milestone.
The Ducks play the Detroit Red Wings in Joe Louis Arena on Saturday.