Powell attended the University of South Carolina. In 2002, his first season playing for them, he had a .292 batting average with 12 home runs and was part of the team that went to the College World Series. They went all the way to the finals and lost to the Texas Longhorns. Powell continued to play for the University of South Carolina and was third on the team in batting average in 2003 (.339) and 2004 (.328). Both those years, he helped his team to the playoffs, but did not get as far as the first time.
Powell led Apex High School in Apex, North Carolina to the 2000 4-A state championship as a junior. Because he was already 18 years old, he was eligible to enter the 2000 Major League Baseball Draft and did so. However, he went undrafted because his agent, Scott Boras, did not inform teams he was available. This made Powell a free agent, but he chose to attend college after failing to receive an acceptable offer from an MLB club. This loophole in the drafting system was later closed due to this incident and one a year later involving current Detroit Tigers pitcher Jeremy Bonderman.
After three seasons with the Gamecocks, Powell was drafted by the Chicago Cubs in the 2003 Major League Baseball Draft as the 733rd overall pick in the 25th round. He did not sign with the Cubs and opted instead to play another season with the University of South Carolina. After his final season there, he entered the draft again in 2004 and the switch hitting catcher was taken in the 1st round by the Oakland Athletics as the 24th overall pick and was the Athletics' first overall pick.
Upon signing with the Athletics on July 22, 2004, he was assigned to play for the Single-A Vancouver Canadians. He played in 38 games and hit just .237. Teammate Kurt Suzuki, also taken in the 2004 draft, got more playing time as he played in 46 games and hit .297. Both were the organizations catchers of the future and only time would tell who would reach the majors first. Powell's chances were ruined when in 2005, he was out for the entire season when he underwent surgery to repair a torn ACL. After a lost year, he played again in 2006, playing for the Single-A Stockton Ports and the Double-A Midland RockHounds.
Powell began the 2007 season playing for the Rockhounds. In 60 games with them, he hit .292 with 11 home runs. He was promoted to play with the Triple-A Sacramento River Cats on June 28. He played just 4 games for the River Cats before reaggravating the same knee that forced him to sit the 2005 season. Powell missed the rest of the 2007 season and probably will miss most of the 2008 season as well. He was considered as a possibility to split the catching duties for the major league club in 2008 but with his injury, it does not seem possible.
On November 20, 2007, the Athletics purchased his contract, protecting him from the Rule 5 Draft.
In 2010, Powell was named to the NCAA World Series Legends Team. He and Ryan Garko (Texas Rangers) were named as catchers, Garko is now a first baseman