He played parts of three seasons in the minors for the Athletics. In 2004 he played for the Low-A Vancouver Canadians and the Single-A Kane County Cougars. In 2005 he played for High-A Stockton Ports and in 2006 he played for Stockton and the Double-A Midland RockHounds. He was called up to the majors in April 2007. He made his major league debut on April 23, 2007 against the Baltimore Orioles, and got his first major league hit the same day. Putnam returned to the minors in May 2007 when Milton Bradley returned from an injury. May 10, 2007 would be his final major league appearance.
He was designated for assignment on January 11, 2008, and started the year playing for their Triple-A affiliate, the Sacramento River Cats and would end up playing 89 games for Sacramento during the season. In 2009, Putnam played for Sacramento and Midland for the Athletics organization.
San Diego Padres
On July 8, 2009, Putnam was traded to the San Diego Padres as the player to be named later in the Chad Reineke trade that had occurred on April 2. He would finish the 2009 season with the Padres Triple-A affiliate, the Portland Beavers. Putnam was released by the Padres organization on March 25, 2010.
Bridgeport Bluefish
Following his release from the Padres, Putnam signed with the Bridgeport Bluefish of the independent Atlantic League for the 2010 season. He played in 108 games for Bridgeport, hitting .272/.367/.448 to go along with 11 homers and 56 runs batted in. In 2011 for the Bluefish, Putnam slashed .270/.331/.420 over 105 games. He became a free agent after the season.