Beltran, Cardinals agree on two-year deal

Carlos Beltran crosses home plate after homering for San Francisco in a Sept. 22 game in Los Angeles

Free-agent outfielder Carlos Beltran has agreed to a two-year contract worth $26 million with the St. Louis Cardinals, sources told Yahoo! Sports on Thursday.

As part of the deal Beltran received a full no-trade clause.

Behind only Albert Pujols and Prince Fielder on the list of available sluggers, Beltran, 34, chose the Cardinals over similar offers from the Toronto Blue Jays and Cleveland Indians.

The Boston Red Sox and Tampa Bay Rays also had shown interest in Beltran, who overcame lower-body injuries the previous two seasons to bat .300 and hit 22 home runs over 142 games with the New York Mets and San Francisco Giants in 2011.

Beltran hit as many as 40 home runs once and as recently as 2007 hit 33 homers, but balky knees slowed him over his final two years in New York.

He once regularly stole 30 bases or more. He has seven over the past two seasons.

Still, Beltran remains an offensive force. The switch-hitter batted .307 and had a .404 on-base percentage from the left side in 2011. His on-base-plus-slugging percentage from the right side was .923. His overall OPS – .910 – was 15th in baseball, ninth (and just ahead of Pujols) in the National League. And he hit .378 for the Giants in September.

With the free-agent departure of Pujols, who'd been the organization's rock for 11 seasons, the Cardinals needed middle-of-the-order offense. Presumably, Lance Berkman will play first base and Beltran will play right field.

Pujols' agent, Dan Lozano, also represents Beltran.

Other popular stories on Yahoo! Sports:
A's signal surrender by shipping Gio Gonzalez to Nationals
Fantasy Football video: Week 16 pickups
The most hated player in the NBA (it's not Kobe)