Casilla was signed as a free agent by the Anaheim Angels in 2003. On December 9, 2005, the Angels traded Casilla to the Minnesota Twins for pitcher J. C. Romero.[1] Casilla made his major league debut with the Twins on September 1, 2006, appearing as a pinch-hitter in the seventh inning and drawing a walk in his first plate appearance.[2] In nine games with the Twins, Casilla was 1-for-4 (.250) with two walks.[3]
In 2008, Casilla did not make the Twins Opening Day roster and instead started for the Twins Triple-A affiliate, the Rochester Red Wings. After an injury to infielder Nick Punto, Casilla was called up in May.[4] On May 19, 2008, Casilla hit a three-run homer, his first career MLB home run against Texas Rangers.[5] It was also his first hit of the 2008 season. Casilla spent the rest of the 2008 season as the Twins' starting second baseman and second hitter in the lineup. He finished the season batting .281 with seven home runs and 50 RBI in 98 games.[3]
Casilla struggled to begin the 2009 season. After hitting only .167 in his first 84 at-bats, he was optioned to Triple-A Rochester.[6] He was recalled and had a .202 average, 17 RBI, a .280 on-base percentage, and a .259 slugging percentage in 80 games.[3] He had the most at-bats without a home run in the AL.
In 2009, during the 2009 AL Central tie-breaker game featuring the Twins against the Detroit Tigers, Casilla became the unlikely hero, hitting a game-winning walk-off single to score Carlos Gómez from second base in the bottom of the 12th inning.[7]
Prior to the 2010 season, Casilla changed his number from 25 to 12, giving number 25 to Jim Thome, who had worn the number for almost his entire 21-year career.
For most of the 2011 season, Casilla switched between second base and shortstop, sometimes filling in for Tsuyoshi Nishioka, who was injured for the first two months of the season. In 97 games, Casilla hit .260 with two home runs and 21 RBI.[3]
Casilla made the Twins' Opening Day roster in 2012 and got off to a relatively slow start in his first 16 games. For the season, he played in a career high 106 games, hitting .241 with a home run and 30 RBI.[3]
Baltimore Orioles
On November 2, 2012, Casilla was claimed off waivers by the Baltimore Orioles.[8] On November 30, Casilla signed a one-year, $1.7 million deal with a club option for 2014 to avoid arbitration with Baltimore.[9]
Casilla made the Opening Day roster with the Orioles in 2013. After Brian Roberts went down with an injury three games into the season, Casilla entered a platoon with Ryan Flaherty at second base. Through June, Casilla was hitting .222 with 8 RBI and 10 runs scored. When Roberts returned on June 30, Casilla's playing time drastically diminished, leading to only four appearances in all of July, and 20 appearances after June despite being healthy. In 62 games (31 starts) in 2013, Casilla hit .214 with a home run, 10 RBI and 15 runs scored.[3] He did not make an error in 170 chances in the field, with 169 of those being at second base.[3]
On November 4, Casilla had his $3 million club option declined, and was instead paid the $200,000 buyout, becoming a free agent.[10]
On January 10, 2014, Casilla re-signed with the Orioles on a minor league contract.[11] By April 17, he was replaced by Jonathan Schoop due to his strained hamstring.[12]
Tampa Bay Rays
Casilla signed a minor league deal with the Tampa Bay Rays on February 2, 2015.[13] He was released on March 31.[14] The Rays re-signed him to a minor league contract on April 9.[15]
On March 9, 2016, Casilla signed a minor league contract with the Toronto Blue Jays organization.[17] In 83 games for the Triple–A Buffalo Bisons, he batted .241/.296/.319 with two home runs, 16 RBI, and five stolen bases. Casilla elected free agency following the season on November 7.[18]
On February 16, 2018, Casilla re-signed with the Revolution.[20] In 108 games he hit .336/.384/.418 with 3 home runs, 36 RBIs and 16 stolen bases.
He re-signed again for the 2019 season on February 27, 2019,[21] and became a free agent after the season. In 32 games he hit .300/.331/.431 with 3 home runs, 9 RBIs and 1 stolen base.