The deal carries an average annual value of $4.167 million.
The Oilers acquired Talbot at the 2015 Draft from the New York Rangers for the 57th, 79th and 184th picks. The Oilers also received the 209th pick in the deal.
Talbot was deemed worthy of the being the starter in Edmonton after putting up a .926 save percentage in 36 games as Henrik Lundqvist's backup in New York.
"It's an exciting time to be part of this team," Talbot told the Oilers' website. "I'm happy I'm going to be around for the next three years to grow and improve with this team... I love the city so far."
He is currently is playing on a one-year deal signed with the Rangers that pays him $1.45 million. He was slated to become an unrestricted free agent after this season.
The 28-year-old is 8-13-3 with a .914 save percentage and a 2.58 goals-against average in 26 games this year, but has been excellent of late. He's stopped 196 of 207 shots in his last seven games for a .947 save percentage.
“I think we’ve made some huge strides, even from game one to now. It’s moving in the right direction and I only see us going forward from here,” said Talbot. “When I was given the opportunity to stay here another three years, it was kind of a no-brainer.
"From day one to now, we’ve made some big strides and I expect nothing less in the next three years to push forward and become a playoff team and eventually a contender. I wanted to be around for all that.”