At Mary G. Montgomery High School, he went 12-2 with a 1.75 ERA his senior season and was the 1991 Alabama High School Player of the Year.
He was selected by the Chicago Cubs in the 4th round of the 1991 baseball draft and began his professional career by recording a 0-9 record in 13 starts with the Huntington Cubs in the rookie league. He rose through the Cubs farm system with stops in Peoria, Daytona, Orlando and Iowa. His best minor league season was in 1995, when he was the closer for the Orlando team and saved 19 games with a 1.43 ERA.
Adams made his Major League debut on August 10, 1995 for the Cubs against the San Diego Padres in the first game of a doubleheader at Wrigley Field. Adams pitched a scoreless two-thirds of an inning in relief of starting pitcher Frank Castillo. Adams returned to the mound in the second game of the doubleheader, pitching a scoreless eighth inning in relief of starting pitcher Steve Trachsel.
He remained in the Cubs' bullpen through 1999, primarily as a setup reliever, though he did save 18 games in 1997.
After the 1999 season, the Cubs traded Adams to the Los Angeles Dodgers (along with two minor leaguers Chad Ricketts and Brian Stephenson) in return for Eric Young and Ismael Valdes.
He worked out of the bullpen for the Dodgers in 2000, posting a 6-9 record with two saves and a 3.52 ERA in 66 appearances. He was suspended for three games after an altercation with fans on May 25. In 2001, Adams spent part of the season in the bullpen and part of the season in the Dodgers starting rotation. It was the first time he had started regularly since pitching with the Single-A Daytona Cubs of the Florida State League. Adams went 12-8 with a 4.33 ERA in 43 games, 22 of which were starts, for the Dodgers that season. Adams was the pitcher to give up Barry Bonds' 500th home run on April 17, 2001.
Adams signed as a free agent with the Philadelphia Phillies for the 2002 season as a starting pitcher before ultimately being returned full-time to the bullpen. In 46 appearances, 19 of which were starts, he posted a 7-9 record with a 4.35 ERA in 2002.
He re-signed with the Phillies prior to the 2003 season and enjoyed one of his finest seasons, posting a 1-4 record with a 2.65 ERA in 66 relief appearances.
Adams signed with the Toronto Blue Jays on January 7, 2004, and was a key contributor to their bullpen. He appeared in 42 games, posting a 4-4 record with three saves and a 3.98 ERA before being traded to the Boston Red Sox shortly before baseball's trade deadline.
On July 24, 2004, Adams was traded to the Boston Red Sox for third baseman John Hattig. The move was one of several attempts by the Red Sox front office to bolster the Boston bullpen for the pennant push. Adams did not perform well down the stretch for the Red Sox, going 2-0 with a 6.00 ERA in 19 appearances. He was included on the postseason roster although he did not appear in any games en route to the club's first World Series championship since 1918.
A free agent after the 2004 season, Adams once again signed with the Philadelphia Phillies on January 11, 2005. He struggled drastically in 16 appearances out of the bullpen, going 0-2 with a 12.83 ERA, walking 10 batters in 13 1⁄3 innings.
On May 23, in what would prove to be his final big league appearance, Adams yielded one run on two hits with a strikeout in one-third of an inning of work for the Phillies in a 5-2 loss to the Florida Marlins. He was released the following day.
Adams' professional career came to a close with the Triple-A affiliate of the Pittsburgh Pirates, the Indianapolis Indians of the International League, in 2006. Adams made 48 relief appearances for Indianapolis and posted a 4.29 ERA.