On September 5, 2008, Santos was called up to the Orioles from the Triple-A Norfolk Tides.[2] Santos played in 11 games and had 10 at-bats, recording one hit.[3] He caught nine total games, starting three.[3]
New York Mets
On January 20, 2009, Santos signed a minor league contract with the New York Mets.[4] On April 17, Santos was called up to the Mets to replace the injured Brian Schneider after starting the season with the Triple–A Buffalo Bisons.[5] On April 27, Santos hit his first career home run, a grand slam off Florida Marlins pitcher Aníbal Sánchez. It was the first grand slam hit in Citi Field. The home run also produced his first career RBI.[6] On May 23, Santos hit a two-run go-ahead home run off Red Sox closer Jonathan Papelbon at Fenway Park in the ninth inning with two outs, which was the difference maker in the game.[7] On May 29, against the Florida Marlins, he hit a game-tying home run in the fifth inning and a game-winning single in the bottom of the 11th.[8] Soon after the game, the Mets traded their other backup catcher Ramón Castro to the Chicago White Sox for pitcher Lance Broadway, ensuring that Santos stayed with the team as the backup catcher to Brian Schneider.[8] On November 25, Santos was named on the 51st annual Topps All-Star Rookie team.[9] Santos finished the season with seven home runs, 40 runs batted in (RBI), 73 hits and a .260 average in 96 games.[3]
On February 20, 2010, the Mets signed catcher Rod Barajas to a Major League deal.[10] With Henry Blanco serving as the backup catcher, Santos began the season in the minor leagues. On March 7, Santos hit an inside-the-park grand slam in spring training.[11] On June 4, the Mets called up Santos to back up the backup catcher Blanco, who was a "bit banged up". He was optioned back to the minors on June 7.[12] On November 10, Santos refused his minor league assignment and became a free agent.[13]
Detroit Tigers
During the 2010 MLB Winter Meetings, Santos signed a minor league contract with the Detroit Tigers.[14] He was promoted to the Tigers on April 19 and was given number 18 to fill in for the injured Victor Martínez.[15] On April 19 against the Seattle Mariners, Santos recorded a pinch hit single.[16] The next day, he got the start at catcher, where he went 0-for-4 and caught nine innings.[17] Santos was recalled again in August to replace Miguel Cabrera who was attending the birth of his child.[18] The Tigers used Cabrera's paternity leave as an opportunity for Santos to catch a game in place of Alex Avila, who had started the previous 18 games.[18] Regular backup catcher Víctor Martínez had been limited to designated hitter due to injury.[18]
After being outrighted to Triple-A in 2011, Santos was given an invitation to spring training as a non-roster player.[19] He did not make the opening day roster, but was called up to the Tigers on May 30, 2012 after injuries to Alex Avila and Gerald Laird.[20] On June 2, 2012, Santos had a walk-off sacrifice fly to beat the New York Yankees.[21]
On June 6, 2012, Santos was designated for assignment.[22] On June 8, 2012, Santos declined the minor league assignment and became a free agent.[23]
Colorado Rockies
On June 13, 2012, Santos signed a minor league contract with the Colorado Rockies.[24]
Cleveland Indians
On February 5, 2013, Santos signed a minor league contract with the Cleveland Indians.[25] Santos started the 2013 season with the Triple-A Columbus Clippers, and was called up to the Indians on April 9, 2013.[26] He appeared in one game for the Indians before being optioned back to Columbus a week later.[27] On July 14, Santos was outrighted off the 40-man roster to Columbus.[28]
Santos signed a minor league contract with the Washington Nationals in 2015.[30] He was released on April 2, 2015.[3]
Cleveland Indians (second stint)
On February 26, 2016, Santos signed a minor league contract with the Cleveland Indians.[3] He did not appear in a game for the organization and elected free agency following the season on November 7.[31]