Financial details of the deal were not available Thursday. The Bengals announced the addition of O'Sullivan on Friday.
O'Sullivan, 29, should be a good fit for the Cincinnati offense and, given Palmer's injury history, he could get some playing time for the Bengals.
A seven-year veteran, O'Sullivan began his NFL career in New Orleans, where he was a sixth-round pick in 2002. He was traded by the Saints to the Green Bay Packers in 2004 and has also played for the Chicago Bears, Minnesota Vikings, New England Patriots, Carolina Panthers, Detroit Lions and 49ers. The Bengals will be O'Sullivan's ninth team in eight years in the league.
Last season represented the most extended playing time that O'Sullivan, a favorite of then-offensive coordinator Mike Martz, has ever received. He played in nine games, with eight starts, and completed 128-of-220 passes for 1,618 yards with eight touchdown passes and 11 interceptions.
Before last season, O'Sullivan had never started a game and had played in only five contests. For his career, O'Sullivan has completed 141-of-246 passes for 1,826 yards, with nine touchdowns and 13 interceptions. The former Cal-Davis standout also played in NFL Europe in 2004.
Palmer is coming off a right elbow injury, which did not require surgery but limited him to four games, all starts, in 2008. His backup last season, Ryan Fitzpatrick, signed a three-year deal with the Buffalo Bills last week as a free agent. In 2006, Palmer's backup was Anthony Wright. Doug Johnson, was the No. 2 quarterback in 2007.
Len Pasquarelli is a senior NFL writer for ESPN.com.