He was signed by the Braves on July 29,, after he was selected in the 20th Round of the 2002 Major League Baseball Draft. In, he was named the Danville Braves' Pitcher of the Year, with a 1.25 earned run average and 68 strikeouts. In, he was named the South Atlantic League Pitcher of the Year, while playing for the Rome Braves, and was also named the April Player of the Month. He led the Braves minor league organization in wins. James also had the lowest ERA in his league. During May of, opponents only hit.109 against him. James began the season with the Class A Myrtle Beach Pelicans. Later in the season, he went 9-1 with a 2.01 ERA with the AA Mississippi Braves. On September 28, 2005, he was called up to the majors and made his debut against the Colorado Rockies. He started the season in the Atlanta bullpen, and also spent some time playing for the AAA Richmond Braves. On June 25, 2006 James made his debut as a starter for the Atlanta Braves against the Tampa Bay Devil Rays going eight innings and allowing only one run with eight strike outs. He proceeded to win eleven of his eighteen starts with a 3.78 ERA. James went a disappointing 11-10 while leading the league in home runs allowed with 32 in the 2007 season which also included his first disabled list stint. As of May 18, 2008, James has spent the season up and down from Triple-A and has had 5 major league starts going 2-3 with an ERA of 8.22. He was again optioned down to Triple-A Richmond on May 16, 2008, following a rocky start against Philadelphia. James underwent surgery on his shoulder in September 2008, repairing a torn labrum as well as a torn rotator cuff. James said he first felt problems in 2007, but "nothing was found" in his MRIs. James was non-tendered by the Atlanta Braves on December 12, 2008, making him a free agent. In 64 appearances with the Braves, he was 24-19 with a 4.53 ERA, striking out 242 in 326 innings.
James missed all of 2009 recovering from the surgery, and on January 25, 2010, James signed a minor league contract with the Washington Nationals. He began the year in Triple-A Syracuse's rotation, but after five starts, he was demoted to Double-A Harrisburg, where he spent the rest of the year in their bullpen. He did make a start on June 10, pitching five innings as part of a seven-inning no-hitter. In 26 appearances in 2010, he was 10-1 with a 2.32 ERA, striking out 69 in 66 innings.
On December 20, 2010, James signed a free agent contract with the Minnesota Twins. He was assigned to Triple-A Rochester to begin 2011 after giving up 6 runs in 8 innings during Spring Training. James made 19 appearances in the Red Wings bullpen before he had his contract purchased on May 28, 2011. He was 1-1 with a 1.57 ERA and 37 strikeouts, used mainly as a long reliever. He made 4 scoreless appearances with the Twins before being optioned back to Rochester on June 16 when Glen Perkins returned from the disabled list. He had another 4-game stint with the Twins in July before spending the rest of the year in Rochester. In 8 games with Minnesota, he had a 6.10 ERA in 10.1 innings, striking out 8. In 38 appearances with Rochester, he was 3-2 with a 2.30 ERA, striking out 67 in 62.2 innings. He was designated for assignment on September 6 after he wasn't recalled when the rosters expanded, and he became a minor league free agent after the season.
On December 15, 2011, James signed a minor league contract with the New York Mets. He began 2012 with Triple-A Buffalo, where in 18 appearances, he was 0-1 with a 4.57 ERA, striking out 22 in 21.2 innings. He was released on July 5, 2012, and he retired soon thereafter.
Personal life
While in college, James was bitten by a copperhead, a venomous snake, and never sought medical treatment. During previous offseasons, he has worked as a home installation technician for Lowe'shardware stores. However, at the end of the 2007 season, James said he would not continue to work in the offseason. Following his retirement from baseball, James worked for Window World, a window installation service in Marietta, Georgia.