The contract includes a club option for 2016 that could make it worth more than $43 million.
Romero, a 25-year old left-hander is 9-7 this season with a 3.53 ERA in 23 starts. He has 52 career starts and a record of 22-16 with a 3.94 ERA and is reportedly seen by the team as the player to build their pitching staff around.
"It was a pretty long process," Romero told reporters. "I'm really, really happy it's done."
The Blue Jays are in Anaheim allowing Romero, a California native, to be with his family when the agreement was announced.
"I was actually at home with them this morning when the deal got announced," Romero said.
"I actually just bought a house for them (his parents) in Downey, which is probably about 25 minutes away from here, so we had Mom, Dad and my little sisters and brothers and it was definitely a special moment."
(Reporting by Mike Mouat in Windsor, Ontario; Editing by Greg Stutchbury)