In 1995, Smith was drafted by the Los Angeles Dodgers in the 42nd round of the 1995 Major League Baseball Draft, but did not sign. A year later, he was drafted by the Chicago Cubs in the 23rd round of the 1996 Major League Baseball Draft. He made his major league debut with the Cubs on June 17, 2001.
After stints in Tampa Bay, Detroit and Colorado, Smith was claimed in the Rule 5 Draft by Toronto in December 2006.
Smith was claimed off waivers by Arizona on May 15, 2007. He played 2 games for the Diamondbacks going 1-4 before being placed on the disabled list. On July 11, 2007, while on the disabled list, he was claimed off waivers by the Kansas City Royals, for whom he batted .188 in 2007 and .214 in 2008.
He became a free agent after the 2008 season and signed a minor league contract with the Houston Astros on January 5, 2009.
On May 10, 2009 Smith was recalled to Houston for added depth as Lance Berkman suffered a wrist injury.