The 29-year-old forward could have become an unrestricted free agent July 1. He has 28 points (13 goals, 15 assists) in 44 games this season, one shy of his NHL career high, set with the Vancouver Canucks in 2013-14, and has played primarily on Edmonton's top line with Connor McDavid.
"I'm happy to be here," Kassian said. "I love being an Oiler, I love the city, I love the fans, I love my teammates. I feel when [general manager Kenny Holland] came in with [coach Dave Tippett], they were building something special here, and I'm happy to be a small piece to that puzzle. More than happy, excited for myself, my daughter, life's good."
Last season, Kassian scored an NHL career-high 15 goals for the Oilers.
"He means a ton to our group," McDavid said. "He's a vocal guy in our room, brings emotion, brings intensity every night, and I'm glad that he's going to be here for a long time.
"You need those big, tough guys on your team, and it's nice to play with one alongside me every night, and there is not many bigger and tougher than Zack Kassian. He's fun to play with."
Edmonton (26-18-6) is in third place in the Pacific Division, four points behind the Vancouver Canucks for first.