After being chosen in the 55th round by the Chicago Cubs in the 1995 Major League Baseball draft, Speier made it to the big leagues in. He appeared in one game for the Cubs before he was dealt with two other teammates to the Florida Marlins. He pitched 18 games in Florida and by the time next season arrived was coming out of the bullpen for the Atlanta Braves. For the season, he appeared in 19 games. On November 23,, Speier was claimed off waivers by the Cleveland Indians.
2000–2003
While with the Indians in, Speier went 5-2 during the regular season which was the first time he had ever wona game in the major leagues. He started the season back with Cleveland, winning his first two decisions of the season before he was traded to the New York Mets and just 10 days later without appearing in a game for the Mets, claimed off waivers by the Colorado Rockies. With the Rockies, Speier recorded a 4-3 record in 42 games for the team. Between Cleveland & Colorado, Speier finished with an overall record of 6-3 in 76.2 innings pitched. In 2002, Speier was 5-1 with a 4.33 ERA. In 2003, he appeared in a career high 72 games. His overall win-loss record with Colorado was 12–5 while picking up his first 10 big league saves. He was then traded to the Toronto Blue Jays on December 14,, in a trade involving three teams.
2004–2010
During his first season with the Blue Jays, he finished the season with an above average 3.91 ERA, while posting a 3-8 record and adding 7 more saves to his career total. In, his ERA went down from 3.91 in his first year with Toronto to 2.57. He also went 3-2 and appeared in 66 games, which was three more appearances than he had in 2004. During the season, Speier compiled a 2-0 record, with a 2.96 ERA and 25 holds. Speier become a free agent after the 2006 season, and on November 19, 2006, Speier signed a four-year contract worth $18 million with the Los Angeles Angels of Anaheim. In his first year with the Angels, Speier had an ERA of 2.88 in 51 games. In 2008, Speier had a career worst, sporting a record of 2-8 with a 5.03 ERA in 62 games. In 2009, his ERA went higher, finishing at 5.18 in 41 games. Speier was then released on August 11, 2009. On January 28, 2010, Speier signed a minor league contract with the Colorado Rockies with an invitation to spring training. He was released on April 3 after not making the team. Upon his release, he retired from baseball at the age of 36.