On January 29, 2009, Brown was released to clear a roster spot for Russ Springer. On April 28, 2009, Brown signed back with the Oakland Athletics on a minor league deal, but did not pitch in their organization before becoming a free agent at the end of the season. He signed with the Washington Nationals as a minor league free agent before the 2010 season, then was traded to the St. Louis Cardinals on May 24. The Cardinals released him on August 19.