After posting a 7–4 record and a 2.91 earned run average (ERA) in the 2006 season for Long Beach State, Carpenter was drafted by the Philadelphia Phillies in the 2nd round of the 2006 MLB Draft and signed on June 14 of the same year. The team assigned him to the Gulf Coast League Phillies, a rookie-league affiliate, where he appeared in two games before being promoted to short-season Batavia for the remainder of the season.
Carpenter pitched well enough to earn a promotion to high-A Clearwater for the 2007 season, and he did not disappoint. In 24 starts for the Threshers, Carpenter posted a 17–6 record and a 3.30 ERA, striking out 116 batters in 161 innings pitched. In August, Carpenter pitched a seven-inning perfect game against the Fort Myers Miracle.
After posting a 3–3 record and an even lower ERA of 2.98 at the beginning of 2008, the Phillies promoted him to Reading, where he struggled to a 2–7 record, allowing 83 hits and 46 earned runs in 59⅔ innings.
The Phillies called up Carpenter to the majors on August 27, 2008. At the time of his call-up, he had posted a 4–1 record with a 3.44 ERA in his prior five starts. Carpenter made his Major League debut that night, pitching the ninth inning in relief against the New York Mets.
Carpenter participated in the 2008 Arizona Fall League as a member of the Mesa Solar Sox.
The Phillies called him up for the second time on May 16, 2009, to make his first career Major League start. Though Carpenter did not pitch the requisite five innings, he did earn his first major league win in a rain-shortened, six-inning game against Washington, pitching 4⅓ innings and allowing 5 earned runs on 8 hits and 3 walks.
The Phillies called up Carpenter for the third time on July 20, 2010 to replace Kyle Kendrick in the Phillies' starting rotation.
He was in 11 total games for the Phillies over parts of four seasons, while spending most of his time in AAA with the Lehigh Valley IronPigs. He had a 1-1 record and 8.53 ERA with the Phillies.
On September 2, 2011, Carpenter was claimed off waivers by the San Diego Padres. He pitched in 6 games for the Padres with an 8.44 ERA.
The Toronto Blue Jays claimed him off waivers on November 18, 2011. The Blue Jays planned to designate Carpenter for assignment on July 21, 2012; however, Jason Frasor was placed on the DL instead. Carpenter was designated for assignment on August 4. On August 6, Carpenter was outrighted to the Las Vegas 51s. Carpenter refused the assignment and became a free agent on August 7.
Carpenter was signed to a minor league contract by the New York Mets on August 10, 2012, and assigned to their Double-A affiliate Binghamton Mets. He was used as a relief pitcher, and appeared in five games for Binghamton, and five for the Mets' Triple-A affiliate Buffalo Bisons.
The Chicago Cubs signed Carpenter to a minor league contract with a major league spring training invitation on December 7, 2012. He started the 2013 season with the Triple-A Iowa Cubs.
The Colorado Rockies acquired Carpenter from the Cubs on May 11, 2013, and assigned him to the AAA Colorado Springs Sky Sox.
The Los Angeles Angels of Anaheim signed Carpenter to a minor league contract on July 9, 2013, after being released by the Rockies on June 29. The Angels assigned him to the Double-A Arkansas Travelers. Carpenter was released on August 2.
The Oakland Athletics signed Carpenter to a minor league contract on August 12, 2013 and assigned him to the Double-A Midland RockHounds.
He signed a minor league contract with the Los Angeles Dodgers in December, 2013. He was assigned to the AAA Albuquerque Isotopes, where he appeared in 16 games (with 6 starts) and was 3-1 with a 7.74 ERA.
Carpenter signed with the Sugar Land Skeeters of the Atlantic League of Professional Baseball for the 2015 season. He became a free agent after the 2015 season.
Carpenter throws a fastball between 88 and 92 miles per hour (148 km/h). His repertoire includes a pair of breaking pitches: a slider, widely considered a strong pitch, and a split-finger fastball, which has developed into his "out" pitch. He also throws a changeup, new to his repertoire since turning pro.