The Angels also avoided arbitration with catcher Jose Molina by reaching a $2.1 million, two-year deal.
Lackey went 14-5 with one complete game in 33 starts for the Angels last year. He had a 3.44 ERA and 199 strikeouts.
The 27-year-old right-hander was 8-1 with a 2.57 ERA in 15 starts after the All-Star break.
"John has been an integral part in the success of our pitching staff," general manager Bill Stoneman said. "We look forward to another impressive season from him."
Molina, 27, was a reserve catcher for the Angels in 2005, his fifth year with the team. He had a career high of six home runs and tied a career high with 25 RBI.
Molina is guaranteed $850,000 this year and $1.25 million in 2007. He can double his 2007 base salary by starting 115 games at catcher this season.