[1] Bell attended Bishop Carroll Catholic High School in Wichita, Kansas, where he played as a quarterback.
In 2011, he was the backup quarterback to Landry Jones, but appeared in the Sooners jumbo package, leading to 44 rushing attempts for 171 yards and 13 touchdowns.
As a senior in the spring of 2014, Bell was converted into a tight end after the emergence of redshirt freshman quarterback Trevor Knight in the 2014 Sugar Bowl.
[10] Throughout training camp, Bell faced stiff competition for a roster spot against Vance McDonald, Garrett Celek, Xavier Grimble, Derek Carrier, Asante Cleveland, and Rory Anderson.
[11] Head coach Jim Tomsula named him the fourth tight end on the depth chart to begin his rookie season, behind Vernon Davis, Vance McDonald, and Garrett Celek.
The following week, he made his first career reception off a four-yard pass by quarterback Colin Kaepernick during the third quarter of a 43–18 loss to the Pittsburgh Steelers.
[20] Bell contended for a roster spot under new head coach Kyle Shanahan, going up against George Kittle, Logan Paulsen, and Cole Hikutini.
[23] He began the season as the third tight end on the roster, behind Kyle Rudolph and David Morgan II.
On October 1, 2017, he earned his first start with the Vikings and caught a 12-yard pass from quarterback Case Keenum during Minnesota's 14–7 loss to the Detroit Lions.
[25] On December 10, 2017, Bell scored his first NFL points, catching a two-point conversion during a 31–24 loss against the Carolina Panthers.
[32] On April 7, 2020, Bell was signed as a free agent by the Dallas Cowboys, to take over the blocking tight end role that Jason Witten had the previous season.
[33] After starter Blake Jarwin was lost for the year with an ACL injury suffered in the season opener against the Los Angeles Rams, Bell became the backup tight end behind Dalton Schultz.
He started the seventh and eighth game, when the Cowboys employed a two tight end formation to provide extra passing protection.