Bell was signed by the Minnesota Vikings as an undrafted free agent on April 27, 2009. He was waived on August 16.
Bell was signed to the Chicago Bears' practice squad on September 16, 2009. He was promoted from the practice squad to the active roster on November 20, 2009, to replace an injured Garrett Wolfe.
His first NFL carry on November 22, 2009 was a 72-yard run against the Philadelphia Eagles on NBC Sunday Night Football. This is a modern NFL record for longest first carry of a career. His first NFL touchdown was a 25-yard reception against the Seattle Seahawks on December 18, 2011.
In 2011, after an injury to Matt Forté and Marion Barber, Bell became the starting running back for the Week 16 and 17 games against the Green Bay Packers and Minnesota Vikings after beating out undrafted rookie Armando Allen. Bell also played in the Bears loss against the Denver Broncos. Bell and backup quarterback Josh McCown both generated more than 400 yards in the Packers game. Bell would record 121 on 23 attempts, and caught 4 passes for 38 yards.
In 2012, Bell became an unrestricted free agent, and the Bears extended a qualifying offer to him, which he accepted on April 14, 2012. The contract was worth one-year and $1.26 million. He was waived on August 23, 2012 when he refused to have his contract reduced to $700,000. He was re-signed by the Bears on September 15, 2012 after starting running back Matt Forte went down with an injury. Bell was later waived on October 15.