Drafted by the San Francisco Giants in the 31st round of the 2002 Major League Baseball Draft, Palmer started his professional career strong by having a 1.83 ERA in 2002 with the Salem-Keizer Volcanoes. Palmer spent the 2003 season with the Hagerstown Suns. However, Palmer spent three seasons in Double-A before earning a promotion to Triple-A Fresno in 2006. In 2007, Palmer pitched 150 innings for Fresno, recording an 11-8 record with a 4.32 ERA.
On August 14, 2008, Palmer was called up by the Giants. He made his Major League debut on August 16 against the Atlanta Braves. He started but only lasted 2.1 innings and allowed 6 earned runs. After making 3 starts, he was sent back to Triple-A and became a free agent at the end of the season. He was 0-2 in his 3 starts for the Giants with an 8.53 ERA.
In December 2008, he signed a minor league contract with an invitation to spring training with the Los Angeles Angels of Anaheim.
In 2009, Palmer would come on as a fifth starter, as the Angels starting rotation struggled to overcome injuries and the death of rookie Nick Adenhart. Palmer made his Angels debut on April 23, 2009, earning the win after pitching six innings, giving up five runs on six hits, three walks, and one strikeout. He continued in the Angels starting rotation amassing a 7-1 record until he was moved to the bullpen on July 1, 2009 when Ervin Santana returned. He finished the season 11-2 with a 3.93 ERA. His elevated win and loss record is helped by the fact that the Angels lineup scored 7.47 runs per game and scored in double figures five times he pitched.
In 2010, Palmer was seen as a possible fifth starter after Angels ace John Lackey signed with the Boston Red Sox.
However, the signing of Joel Piñeiro diminished any chances of Palmer in the starting rotation, and he returned to the bullpen for the 2010 season. In 3 seasons in the Angels organization, Palmer pitched in 57 games (17 as starter) with a 4.22 ERA and 13-5 record. He also spent substantial time with the AAA Salt Lake Bees.
The San Diego Padres signed Palmer to a minor league contract on December 1, 2011. He appeared in 3 games for the Padres in the Majors and allowed 2 earned runs in 2 innings. He was also 6-9 with a 5.66 ERA in 20 starts for the AAA Tucson Padres.
Palmer signed as a minor league free agent with the Los Angeles Dodgers on January 9, 2013. During spring training, he tore the medial meniscus in his left knee, ending any chance he had to make the Dodgers roster. He eventually joined the AAA Albuquerque Isotopes roster in late April. In 25 games (22 of which were starts), he was 6-8 with a 3.84 ERA.
Palmer signed a minor league deal with the Seattle Mariners in December 2013. On August 17 2014, Palmer was released by the Mariners.