The $27 million deal announced Thursday includes a $10 million club option for the 2016 season.
The 29-year-old Dominican native is batting .295 with 23 home runs and 58 RBIs.
"I'm very happy to be part of this organization for the next three years," Encarnacion said. "That's why I signed to stay here. I love this country, I love Toronto and I love the fans."
Encarnacion is tied for fourth in the American League in home runs, fifth in slugging percentage (.595) and seventh in RBIs.
In his eighth season, he has a career .267 average with 140 home runs and 450 RBIs for Cincinnati and Toronto.
"We've really seen him grow as a player, grow as someone who quietly leads in the clubhouse as well that's very well-respected," Blue Jays general manager Alex Anthopoulos said. "The ability's always been there. I think it finally started to show at the end of last year and currently now."
Things have not always been smooth for Encarnacion though his eight-year career. Originally a member of the Reds, Encarnacion arrived in Toronto as part of the trade that sent third baseman Scott Rolen to Cincinnati on July 31, 2009.
Encarnacion struggled at the start of the 2010 season, and after a particularly disappointing West Coast road trip, he was placed on outright waivers on June 20. He cleared waivers because of his $5 million contract and was sent to Triple-A Las Vegas.
Encarnacion finished the 2010 season with the Blue Jays, but was waived in the offseason and claimed by Oakland. When the A's didn't offer him a contract, he returned to the Blue Jays as a free agent.
"This game is not easy, it has its ups and downs," Encarnacion said. "They sent me down, I passed waivers, but that's part of this game. ... That's why you always have to keep your head up, keep working hard and don't worry."
Anthopoulos said Encarnacion impressed the Blue Jays with his positive response to adversity.
"I remember when he went down, he had a guaranteed contract and (I thought) he's probably going to be upset. The reports we got back from the staff in Las Vegas were unbelievable," Anthopoulos said. "It's rare. He could have sat there and said `Woe is me," he could have put his head down, but he kept fighting."
Anthopoulos said he doesn't like working on contract extensions during the season because they can be distracting, but said the All-Star break proved the opportune time to sign Encarnacion before the trade deadline and silence any rumors that the Blue Jays might be interested in shopping him around.
NOTES: The Blue Jays will select the contract of LHP Aaron Loup before Friday night's home game against Cleveland. Toronto has put LHP Luis Perez on the 60-day disabled list, retroactive to July 9, with a tear in his elbow. The 27-year-old Perez was 2-2 with a 3.43 ERA in 35 relief appearances. The 24-year-old Loup is 0-3 with three saves and a 2.78 ERA in 37 games at Double-A New Hampshire.