McElhinney came up big in the third period as Columbus was clinging to a one-goal lead, stopping all 16 shots he saw. The goalie made a pad save on a point-blank shot by Vancouver's Chris Higgins with 45 seconds remaining to preserve the lead.
Umberger broke a 1-1 tie with 8:46 left in the third, sliding a shot past Eddie Lack after receiving a pinpoint pass from Ryan Johansen on a break.
Marian Gaborik scored and Johansen added an empty-netter for the Blue Jackets, who broke a four-game losing streak.
Henrik Sedin scored and Lack finished with 26 saves for the Canucks, who fell to 2-1-1 on a seven-game road trip.