The deal is pending completion of a physical exam this week.
Furcal, 34, is a .282 career hitter with the Atlanta Braves, Los Angeles Dodgers and the Cardinals. He hit .255 in 50 games with St. Louis after coming over from Los Angeles in a July trade deadline deal for minor leaguer Alex Castellanos.
Furcal is a former Rookie of the Year and two-time All-Star with 302 career stolen bases, but injuries have limited him to 97 and 87 games played in the past two seasons, respectively. He struggled with the Cardinals in October, hitting .194 (15-for-77) in the playoffs and the World Series.
Furcal recently underwent an appendectomy, according to reports, but he is recovering in Florida and expects to be ready in time for spring training.
Furcal is the third free agent shortstop to go off the board this week. Jose Reyes signed a six-year, $106 million deal with the Miami Marlins this week, and Alex Gonzalez reached agreement with the Milwaukee Brewers on Friday.
The Furcal signing officially removes St. Louis as a potential destination for free agent Jimmy Rollins. Rollins' agent, Dan Lozano, was scheduled to talk by phone Saturday with Phillies general manager Ruben Amaro Jr.
Jerry Crasnick is a senior baseball writer for ESPN.com.