The Canucks won their second straight and maintained a share of the lead with Colorado in the Northwest Division.
Kesler ran his goal total for the season to 15, putting him on pace to easily break his personal record of 26 set two years ago.
He scored in each of the first two periods to give Vancouver a 2-1 lead heading into the third but Tom Sestito tied it for the Blue Jackets with the first goal of his NHL career.
Sestito, who was playing in his seventh game with Columbus scattered over three seasons, was called up last week from the American Hockey League.
Kesler won it with a wrist shot, capitalizing on a boarding penalty called on Jan Hejda. Both the Sedin brothers, Daniel and Henrik, assisted on Kesler's game-winning goal.
Roberto Luongo made 28 saves in the win. Mathieu Garon stopped 27-of-30 shots for the Blue Jackets.