Bennett made his major league debut in 1995 for the Phillies on September 24 against the Cincinnati Reds as a pinch hitter. He was signed as a free agent by the Boston Red Sox in 1997 season and spent the season with the Pawtucket Red Sox. He returned to the Phillies organization the following year as a minor league free agent. Played most of the season with Scranton before his contract was purchased by the Phillies in September. 1998 was his first full season in the majors and he stayed with the Phillies as a backup catcher to Mike Lieberthal until he was traded to the New York Mets for fellow catcher Todd Pratt on July 23, 2001. Bennett played in one big league game for the Mets (going 1–1) before they traded him to the Colorado Rockies a month later. He stayed with the Rockies in 2002, having over 200 at-bats in a season for the first time in his major league career. He then signed free agent deals with the San Diego Padres for 2003 (where he eclipsed the 300 at-bat mark for the first time and set a career-high in RBI, with 42), Milwaukee Brewers for 2004, Washington Nationals for 2005, and St. Louis Cardinals for 2006.[1]
Bennett came alive in late August 2006. He hit four home runs in the span of a week, including a walk-off grand slam against the Chicago Cubs on August 27, 2006.[2] The four home runs equaled his career high of four home runs in a single season, which he did with the 2002 Colorado Rockies. He hit no other home runs that season.
On November 28, 2006, Bennett was re-signed by the Cardinals.[3]
On November 2, 2007, the Cardinals exercised their 2008 buy-out option on his contract.[4]
On December 17, 2007, the Dodgers signed Bennett to a one-year deal[6] to back up Russell Martin, the Dodgers' young All-Star catcher. After signing, Bennett publicly admitted that the Mitchell Report was accurate as far as he was concerned, stating, "As far as the report is concerned to me, it's accurate. Obviously, it was a stupid decision. It was a mistake."[7] Bennett's 2008 season was cut short, however, when he went on the disabled list in mid-May for plantar fasciitis. The ailment would keep Bennett on the disabled list the remainder of the season. Veteran backup Danny Ardoin took Bennett's spot in his absence as Martin's backup. Bennett finished the 2008 campaign with a disappointing .190 batting average with one home run and four RBI in only 10 games played. After the season the Dodgers bought out Bennett's option year, making him a free agent.