The 34-year-old Warwickshire captain has played 118 Test matches, scoring 7,727 runs at an average of 42.69, but last represented his country in 2015.
Bell, who has 18,533 runs in first-class cricket, is still ambitious to regain his England Test place.
He said he was "thrilled" to sign a new contract with the club he first joined as a 10-year-old.
"Warwickshire is the only county that I've ever wanted to play for," he added.
"The club has played a huge role in my career and it's a great honour to now captain the team and help our young, talented players fulfil their potential here at Edgbaston."
Bell has been part of an Ashes-winning team on five occasions, helping England win the urn in 2005, 2009, 2010-11, 2013 and 2015.
He has played in a total of seven series against the Australians, having also been a part of the touring side in 2006/07 and 2013/14.
In domestic cricket, Bell has won six trophies, including captaining the Bears to success in last summer's Royal London One-Day Cup in his first season as skipper.
He is the most capped international cricketer in Warwickshire's history, having played 161 one-day internationals and eight T20 matches for England, in addition to his 118 Test appearances.
Warwickshire sport director Ashley Giles said: "Ian is a true Bear who has been with Warwickshire since the age of 10 and has gone on to be one of the most decorated players in the club's history.
"He continues to be one of the leading batsmen in the country across all three formats and, as our captain, he sets exceptionally high standards for the rest of the squad."
England batsman Ian Bell has signed a new deal with Warwickshire which runs until the end of the 2020 season.