The 20-year-old England winger joined Arsenal from Southampton in January 2006. His pace down the right side and his ability to get behind defenders on counterattacks has made him a crowd favourite.
The club did not disclose financial details about the contract.
The news is a boost to Arsenal, which went out of the Champions League semi-final 4-1 on aggregate to Manchester United on Tuesday.
Walcott had a poor showing over both legs and was stifled by United defender Patrice Evra.
"We are absolutely delighted that Theo has committed his long term future to Arsenal Football Club," Arsenal manager Arsene Wenger said. "Theo is an intelligent player with amazing ability and speed, and has developed extremely well this season.
"Theo has huge potential for the forthcoming years and we are all looking forward to see him grow even more in an Arsenal shirt."
Walcott has made 103 appearances for Arsenal, scoring 14 goals.
He missed nearly four months of this season after he dislocated a shoulder while on England duty in November.
There had been speculation earlier this season that Walcott would leave in favor of a more lucrative contract because of Arsenal's strict wage policy.
But Walcott said he hopes to remain at the club for years to come.
"I'm absolutely delighted to have signed a new long-term contract," Walcott said. "I'm so happy here and just want to say thanks to everyone who has helped me get to this point in my career. I just want to continue playing my football at this club and look forward to many successful seasons ahead."